我做的的gradle中在allprojects節以下...爲什麼我的構建腳本的不同部分爲project.version屬性看到不同的值?
if (project.hasProperty('myVersion')) {
project.ext.realVersion = project.myVersion
project.version = project.myVersion
println("project version set")
} else {
project.ext.realVersion = 'Developer-Build'
project.version = 'Developer-Build'
println("project version set to devbuild")
}
現在,我有一個正確使用project.version一些代碼,它的工作原理,但再有就是也使用相同的屬性其他代碼project.versoin,結果是'未指定'。如果我將兩者都更改爲project.realVersion,它們都可以工作。版本似乎是這個令人討厭的特殊財產,似乎並不總是工作。
使用屬性的代碼如下......(這裏我用realVersion通知,版本不工作,但它在其他位置的正常工作:()....怎麼怪異。
task versionFile() << {
File f = new File('output/version');
f.mkdirs()
File v = new File(f, 'version'+project.ext.realVersion)
println('v='+v.getAbsolutePath())
v.createNewFile()
}
task myZip(type: Zip) {
archiveName 'dashboard-'+project.version+'.zip'
from('..') {
include 'webserver/run*.sh'
include 'webserver/app/**'
include 'webserver/conf/**'
include 'webserver/play-1.2.4/**'
include 'webserver/public/**'
include 'webserver/lib/**'
}
from('output/version') {
include '**'
}
}
myZip.dependsOn('versionFile')
assemble.dependsOn('myZip')
這仍然沒有解釋爲什麼當我在這兩個myZip和versionFile任務使用project.ext.realVersion以上,它的工作原理,但是當我使用project.version ,它行不通.....第一個一貫通過,第二個一直失敗。 –
有強有力的證據表明這是一個評估訂單問題。要絕對確定,你必須提供一個*完整*和*可重現*的例子。 –