intellij, gradle에서 generated sourceSet 설정

2020. 9. 8. 16:42 IDE Tool/IntelliJ IDEA

jooq나 querydsl 같은 프레임워크는 typesafe를 지원하기 위해 class를 생성하는데, 생성하기 위해서 maven 또는 gardle 설정이 필요하다. 이번 포스팅에서는 gradle을 기준으로 생성된 class를 sourceSet으로 등록하는 방법을 기록해두기 위함이다.

build.gradle

/**
* intellij 관련 plugin 추가
*/
apply plugin: 'idea'

ext {
        // 생성된 class 경로
        generatedJavaSourceDir = "src/generated/java"
}

/**
* sourceSet에 generated add
*/
sourceSets {
    generated {
        java.srcDir generatedJavaSourceDir
    }
}

/**
* 보통 src/main/java에 생성된 class는 generated class에 의존한다.
* 이를 위한 의존관계 설정
*/
compileJava {
    source += sourceSets.generated.java
}

/**
* intellij에 생성된 class가 sourceSet으로 인식되기 위한 설정
*/
idea {
    module {
        sourceDirs += sourceSets.generated.java.srcDirs
        generatedSourceDirs += sourceSets.generated.java.srcDirs
    }
}

출처 : https://blog.woniper.net/353?category=537962