[英]Gradle compile generated java file
我正在嘗試將一個大項目轉換為使用當前使用makefiles
狀態的gradle
。
我在某個時候碰到了一堵牆。 假設我們有以下目錄樹(為簡單起見省略了很多東西):
root
|-- src
| +-- main
| +-- java
| +-- com
| +-- app
| |-- a
| |-- b
| +-- c
+-- build.gradle
現在讓我們假設com.app.c
包中存在一個帶有主類的java文件,該主文件用於在同一目錄下生成一個新的java文件,然后編譯該目錄。 包com.app.c
也依賴於其他包。
使用makefile,您可以執行以下操作(一個簡單的算法):
使用gradle雖然我不能做那樣的事情(或者至少我認為我不能)。
我想做的是創建一個JavaExec任務,它將運行生成生成的java文件的文件,並使其在compileJava之后運行,並使用compileJava完成。 但顯然這是任務與死胡同之間的循環依賴。
有沒有人做過或遇到類似的東西? 如果有人可以提供幫助,我會很感激。
請注意,我無法輕松地將文件生成移出該文件,因為它具有一些深度依賴性...
看起來我沒有那么好搜索。
在這種情況下,使用此解決方案也適用。
不同之處在於您必須具有以下配置:
task generateFile(type: JavaExec) { ... }
task compileGeneratedFile(type: JavaCompile) { ... }
generateFile.mustRunAfter compileJava
generateFile.finalizedBy compileGeneratedFile
generateFile.onlyIf { !file("path/to/file").exists() }
這似乎可以解決問題! 只需發布答案,以便任何有相同問題的人都會發現它更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.