gradle中的版本号

时间:2012-09-16 16:56:55

标签: gradle

任何人都知道如何在gradle中使用SUBPROJECT,以便运行左手大小会产生右手档案名称......

gradle assemble -> databus-Developer-Build.zip
gradle -DmyVersion=1.0.2 assemble -> databus-1.0.2.zip
OR
gradle -PmyVersion=1.0.2 assemble -> databas-1.0.2.zip

我尝试过使用变量myVersion,但它总是说它不存在......在一半的情况下,它不应该存在,因为我没有提供它! !

如何在子项目中使用它?

感谢, 迪安

2 个答案:

答案 0 :(得分:6)

将以下代码段添加到root build.gradle的allprojects配置部分:

allprojects {

   if (project.hasProperty('myVersion')) {
     project.version = project.myVersion
   } else {
     project.version = 'Developer-Build'
   }

} 

并在命令行中将您的版本作为-PmyVersion=1.0.2传递。测试了相当古老的Gradle 1.0-milestone-3

答案 1 :(得分:0)

在较新版本中使用的正确方法有效...(注意ext添加)。

   if (project.hasProperty('myVersion')) {
     project.ext.xVersion = project.myVersion
   } else {
     project.ext.xVersion = 'Developer-Build'
   }

有趣的是,这个版本不起作用,因为'version'似乎是某种reserverd属性,并且在启动时设置为未指定...

   if (project.hasProperty('version')) {
     project.ext.xVersion = project.version
   } else {
     project.ext.xVersion = 'Developer-Build'
   }

看到版本似乎是一个保留属性,它很可能用于发布工件,所以最好的解决方案可能是以下

   if (project.hasProperty('myVersion')) {
     project.version = project.myVersion
   } else {
     project.version = 'Developer-Build'
   }

并且自动构建在myVersion和开发人员中传递,当然不会。