当Jenkins创建构建时,我想自动将版本标签推送到我的git存储库。但为了做到这一点,我需要version name
和version code
来创建构建工件。
我目前正在使用以下设置来实现这一点(它工作正常):
生成version.properties
文件的代码如下所示:
android.applicationVariants.all { variant ->
def taskName = "createVersionFile" + variant.flavorName.capitalize();
if (tasks.findByPath(taskName) == null) {
tasks.create(name: taskName) {
doLast {
def prop = new Properties()
def propFile = new File("$buildDir/outputs/version.properties");
prop.setProperty('versionname', variant.versionName + '-' + variant.versionCode)
propFile.createNewFile();
prop.store(propFile.newWriter(), null);
}
}
}
}
这是有效的(如前所述),但这是一个非常笨拙的方法,我被迫修改build.gradle
文件,以便Jenkins完成它的工作。
是否有更简单的方法,可能没有修改build.gradle
文件?可能通过生成第二个build.gradle
文件
包括“version.properties”任务?
答案 0 :(得分:1)
我的构建理念是,所有内容都应该通过gradle提供。无论您想要对项目进行何种自动化。这使您可以灵活地在任何环境中重复它,并轻松设置任何仅支持命令行运行的CI。
所以我会在您的构建中添加gradle git plugin以使用git进行操作(或通过命令行进行操作)。
查看gradle.properties
文件。您可以在那里定义版本代码和名称。您不需要额外的代码来在Android gradle脚本中获取这些值,并将git操作作为参数。所以你可以在defaultConfig
注入它们。