在 gradle 內,執行特定 task 時,需要不同的設定時,可以透 taskGraph 來判斷。下面這例子,很典型地是在 publish 新的 library 時,不含設定檔:
gradle.taskGraph.whenReady { graph ->
if (graph.hasTask(uploadArchives)) {
jar {
exclude '**/*.properties'
}
}
}
有些 project 同時具有 application 與 library 的功能,當 application 正常 build 出來時,會需要含設定檔。作為 library 被編出來時,不需要設定檔,放上去還有可能在 classpath 內 shadowing 其他同名的設定檔。