7일간의 Gradle로 컴파일하면 DOMA 4019가 틀린 이유.

7547 단어 DomaJava
단순한 소스 코드인데도 컴파일할 수 없어 짜증이 났는데 결과는 결과가 없는 오류였다.
그만 깨워.
Eclipse의 Doma 플러그인을 사용하여 파일을 이동하지 않으면 오류가 발생합니다.
잘못된 내용
エラー: [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".
▶ 샘플 코드
주 처리
@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 'SQLファイルのコピー元'
    println sourceSets.main.resources.srcDirs
    into compileJava.destinationDir
    println '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"
}
· Eclipse의 Doma 플러그인으로 엔터테인먼트만 입력하고 SQL 파일을 만들면 자바 아래에 있으면 된다.
▶ 대응 전(인상)

그러면 SQL 파일을 복사할 수 없습니다.복제품의 출처는 Resources이기 때문에...
따라서 META-INF 폴더를 Resources로 이동하면 OK
▶ 대응 후(인상)

좋은 웹페이지 즐겨찾기