我正在使用Gradle構建一個涉及本機庫的Java項目。我有定義的任務jniHeaders
:如何追加一個Gradle任務而不使用`dependsOn`?
jniHeaders.dependsOn classes
所以當我輸入gradle jniHeaders
,它將編譯Java類和生成JNI頭。到現在爲止還挺好。
但我覺得打字gradle jniHeaders
不是很自然。 99%的時間,如果你成功編譯Java類,你也想生成JNI頭文件。如果我可以用gradle classes
編譯Java類並在一個步驟中生成JNI頭文件,那將會很好。
換句話說,我想任務jniHeaders
添加到任務classes
結束,但前提是classes
成功地完成,實際上做了一些工作。
classes.doLast
想起來,但我無法告訴它執行另一項任務。 classes.finalizedBy jniHeaders
在某種程度上起作用,但生成JNI標頭,無論classes
的結果如何。我想我可以添加一些Groovy邏輯來獲得我想要的確切行爲,但我也懷疑必須有一種更簡單的方法。
任何人有任何建議嗎?
是否調用多數民衆贊成竊聽你一個看似隨意的任務只是概念?我可能會試圖定義另一個任務'allTheThings'(或其他任何!),它們只依賴於'classes'和'jniHeaders'。這似乎比添加精品構建邏輯簡單得多:) –