Gradle配置IDEA正常識別JPA Metamodel Generator動態生成的代碼

咱們在使用JPA動態查詢構建查詢條件時,爲了實現安全的類型檢查,經常須要引用Hibernate JPA Metamodel Generator自動爲咱們生成靜態元模型類。java

而這些類因爲編譯時由Hibernate JPA Metamodel Generator自動生成在其餘路徑下,IDEA默認沒法自動識別這些「特別」的類,因此IDEA中的JPA動態查詢相關代碼經常會出現編譯錯誤。安全

若是你使用的是Gradle構建工具,只需在構建腳本中添加以下內容便可解決此類問題啦。工具

build.gradle添加的配置以下:gradle

// 全部自動生成的代碼(好比JPAMetaModelEntityProcessor自動生成的代碼等)都統一存放到build/generated目錄下
// 同時將該目錄添加到main SourceSets中,以便IDEA能夠識別
compileJava {
    options.compilerArgs << "-s"
    options.compilerArgs << "$projectDir/build/generated"
    doFirst {
        file(new File("$projectDir/build/generated")).mkdirs()
    }
}
sourceSets.main.java.srcDirs += "$projectDir/build/generated"

 

執行gradle clean build以後,再次用IDEA打開工程,編譯問題就都解決啦。ui

相關文章
相關標籤/搜索