allprojectsセクションのgradleで次のことを行います...
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 に変更すると、両方とも機能します。version は、常に機能するとは限らないこの厄介な特殊プロパティのようです。
プロパティを使用するコードは次のとおりです....(私が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')