Ich war frustriert, dass ich es nicht kompilieren konnte, obwohl es eine einfache Quelle war, aber es war ein Fehler ohne Ergebnis. Ein Memorandum, um es nicht wieder aufzuwecken.
Wenn ich es mit dem Doma-Plug-In von Eclipse schaffe, wird eine Fehlermeldung angezeigt, wenn ich die Datei nicht verschiebe.
Fehlerinhalt
Error: [DOMA4019] The file "META-INF/doma/sample/dao/TestDao/selectAll.sql" is not found in the classpath. The absolute path is "/Users/harutotanabe/Downloads/sample/build/classes/java/main/META-INF/doma/sample/dao/TestDao/selectAll.sql".
▼ Beispielcode
Hauptverarbeitung
@SpringBootApplication
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
@Autowired
TestDao TestDao;
@Bean
CommandLineRunner runner() {
TestDao.selectAll();
return null;
}
}
Entity
@Entity
public class Test {
public Integer id;
public String test;
}
Dao
@ConfigAutowireable
@Dao
public interface TestDao {
@select
List<Test> selectAll();
}
gradle
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
}
task copyDomaResources(type: Sync) {
from sourceSets.main.resources.srcDirs
println 'Quelle für das Kopieren von SQL-Dateien'
println sourceSets.main.resources.srcDirs
into compileJava.destinationDir
println 'Ziel für das Kopieren von SQL-Dateien'
println compileJava.destinationDir
include 'doma.compile.config'
include 'META-INF/**/*.sql'
include 'META-INF/**/*.script'
}
compileJava {
dependsOn copyDomaResources
options.encoding = 'UTF-8'
}
apply plugin: 'io.spring.dependency-management'
group = 'doma'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
mavenLocal()
maven {url 'https://oss.sonatype.org/content/repositories/snapshots/'}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
compileOnly 'org.projectlombok:lombok'
compile group: 'org.seasar.doma.boot', name: 'doma-spring-boot-starter', version: '1.1.1'
runtimeOnly 'org.postgresql:postgresql'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
annotationProcessor "org.seasar.doma:doma:2.24.0"
implementation "org.seasar.doma:doma:2.24.0"
}
-Wenn Sie eine SQL-Datei erstellen, indem Sie sie einfach mit dem Doma-Plug-In von Eclipse eingeben, befindet sie sich unter Java.
▼ Vor der Korrespondenz (Bild)
Damit können Sie die SQL-Datei nicht kopieren. Weil die Kopierquelle Ressourcen sind. .. .. Daher ist es in Ordnung, wenn Sie den Ordner META-INF in Ressourcen verschieben
▼ Nach der Korrespondenz (Bild)