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


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

而這些類由於編譯時由Hibernate JPA Metamodel Generator自動生成在其他路徑下,IDEA默認無法自動識別這些“特別”的類,所以IDEA中的JPA動態查詢相關代碼常常會出現編譯錯誤。

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

build.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打開工程,編譯問題就都解決啦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM