2015-12-21 30 views
2

我有一個python腳本根據另一個文件修改java類的一部分(添加靜態字段)。在構建過程中添加代碼生成步驟的最佳方法?

什麼是在Gradle構建過程中添加它的最佳方式(我的腳本需要pyton3(所以最好告訴用戶他是否沒有它)並且需要在java編譯之前執行) ?

回答

1

我不能確定從什麼的gradle是最好方式來運行Python,但一個候選者是使用exec任務:

task runPython(type:Exec) { 
    workingDir 'path_to_script' 
    commandLine /*'cmd', '/c'*/ 'python', 'my_script.py' 
} 

您可能必須在Windows中添加cmd/c。您也可以在stdout上解析/斷言成功條件。看到這裏爲more about Exec

對於確保這一任務總是compileJava之前運行,則必須將此任務添加爲dependsOn爲compileJava任務:

compileJava.dependsOn runPython 

替代語法:

compileJava{ 
    dependsOn runPython 
} 

當compileJava dependsOn runPython ,每次調用compileJava時都會首先執行runPython。

+0

有沒有辦法讓它成爲多平臺,並且還要添加一種用戶可以在配置中更改的變量(如CMAKE)? –

+0

我已經在windows上使用exec命令,而不使用cmd和/ c params。不知道這隻適用於某些gradle版本,因爲文檔肯定不會反映它。還有第三方平臺獨立插件:https://plugins.gradle.org/plugin/com.github.jlouns.cpe – RaGe

相關問題