[JAVA] Die Ursache des DOMA 4019-Fehlers beim Kompilieren mit Gradle lag 7 Tage lang

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) image.png

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) image.png

Recommended Posts

Die Ursache des DOMA 4019-Fehlers beim Kompilieren mit Gradle lag 7 Tage lang
Fehler beim Starten von JUnit mit veralteter POI-Version
Problemumgehung für Bundler.require-Fehler beim Ausführen von Ruby mit crontab
Fehler beim Spielen mit Java