[JAVA] Cause de l'erreur DOMA 4019 lors de la compilation avec Gradle pendant 7 jours

J'étais frustré de ne pas pouvoir le compiler même s'il s'agissait d'une source simple, mais c'était une erreur sans résultat. Un mémorandum pour ne pas le réveiller.

Si je le fais avec le plug-in Doma d'Eclipse, j'obtiens une erreur si je ne déplace pas le fichier.

contenu de l'erreur


Erreur: [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".

▼ Exemple de code

Traitement principal


@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 'Source de copie de fichier SQL'
    println sourceSets.main.resources.srcDirs
    into compileJava.destinationDir
    println 'Destination de copie de fichier SQL'
    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"
}

-Si vous créez un fichier SQL en le saisissant simplement avec le plug-in Doma d'Eclipse, il sera sous Java.

▼ Avant la correspondance (image) image.png

Avec cela, vous ne pouvez pas copier le fichier SQL. Parce que la source de la copie est des ressources. .. .. Par conséquent, vous pouvez déplacer le dossier META-INF vers les ressources

▼ Après la correspondance (image) image.png

Recommended Posts

Cause de l'erreur DOMA 4019 lors de la compilation avec Gradle pendant 7 jours
Erreur lors du démarrage de JUnit avec une version obsolète de POI
Solution de contournement pour l'erreur Bundler.require lors de l'exécution de ruby avec crontab
Erreur lors de la lecture avec java