1
我有一個在運行時創建的gradle任務,用於調用位於單獨gradle文件中的另一個任務(「myOtherTask」)。問題是如果其他任務不存在,則會拋出異常。在嘗試調用它之前是否可以檢查外部gradle文件中是否存在任務?確定是否在外部build.gradle文件中定義了任務
例子:
task mainTaskBlah(dependsOn: ':setupThings')
task setupThings(){
//...
createMyOtherTask(/*...*/)
//...
}
def createMyOtherTask(projName, appGradleDir) {
def taskName = projName + 'blahTest'
task "$taskName"(type: GradleBuild) {
buildFile = appGradleDir + '/build.gradle'
dir = appGradleDir
tasks = ['myOtherTask']
}
mainTaskBlah.dependsOn "$taskName"
}
感謝您的答覆,但我不看不出這有什麼幫助。我的目標是確定是否在project.projectDir.absolutePath +'/build.gradle'構建文件中定義了'myOtherTask'。 – Ben
這說明了這一點。如果'project.tasks.findByName('myOtherTask')== null'那麼這個任務沒有被定義。我只是以不同的方式命名任務。 if(project.tasks.findByName('superman')){\ * is defined * \}'。當Gradle構建系統具有此信息時,您不會真的想嘗試手動解析build.gradle文件。 – JBirdVegas
爲清晰起見添加代碼註釋 – JBirdVegas