簡體   English   中英

這個Gradle語法有什么問題?

[英]What is wrong with this Gradle syntax?

我才剛剛開始學習Groovy和Gradle,並且在玩一些hello world gradle腳本。 在以下兩個腳本中,第一個成功,而第二個不成功。 誰能解釋為什么? 順便說一句,我確實意識到這些不是“標准”的Gradle語法,但是它們與API匹配。

這有效:

task 'hello' << {
    println 'Hello world!'
}

task 'intro', dependsOn: hello << {
    println "I'm Gradle"
}

失敗(區別是'hello'周圍的引號):無法確定任務':intro'的依賴關系

task 'hello' << {
    println 'Hello world!'
}

task 'intro', dependsOn: 'hello' << {
    println "I'm Gradle"
}

但這有效:

task 'hello' << {
    println 'Hello world!'
}

task('intro', dependsOn: 'hello') << {
    println "I'm Gradle"
}

第一和第二個片段都是錯誤的。 第一個可能不會完全失敗,但是它沒有期望的結果(任務操作被添加到hello而不是intro )。 最好使用更標准的語法:

task hello << { ... }
task intro(dependsOn: hello) << { ... }

甚至更好:

task hello {
    doLast { ... }
}

task intro {
    dependsOn hello
    doLast { ... }
}

后一種語法更常規,避免了在使用命名參數(例如dependsOn:<<時犯的常見錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM