2016-07-05 51 views
0

無法在配置子項目任務時設置命令行參數。無法在gradle的JavaExec任務中設置命令行參數

task doStuff { 
    def executable_task = project(':SubProject1').getTasksByName('run',true) 
    println executable_task.name 
    println executable_task.args 
    executable_task.args('xyz') 
} 

此錯誤信息被顯示:

出了什麼問題: 發生評估根工程 'MainProject' 的問題。 沒有方法的簽名:java.util.HashSet.args()適用於參數類型:(java.lang.String)values:[xyz] 可能的解決方案:any(),grep(),grep(),add (java.lang.Object中),添加(java.lang.Object中),是(java.lang.Object中)

回答

-1

Project.getTasksByName()返回TaskSet實例的方法。您需要將該字段分配給Set中的每個元素。

task doStuff { 
    doLast { 
     Set<Task> executableTasks = project(':SubProject1').getTasksByName('run', true) 
     executableTasks.each { 
      it.args 'xyz' 
     } 
    } 
} 

順便說一句:我不明白你爲什麼需要爲不同項目中的任務設置參數。難道你不能只在定義任務的子項目:SubProject1中設置它嗎?其實我與配置規則集內:SubProject1任務屬性:

tasks.withType(JavaExec).matching { it.name == 'run' }.each { it.args 'xyz' } 
+0

我不想讓字段的值,我想更新它們。我已經能夠成功地獲得價值。 – PyThon

+0

更新了代碼。順便說一下:[Task API](https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html)上沒有任何方法'args'。 –

+0

仍然無法設置的值,你能給我一個工作示例 – PyThon

相關問題