如何通过Jenkins设置Android应用程序版本号?

14

成功推送后,Jenkins会自动构建应用程序,但版本始终为1.0。我想在版本号中插入相应的Jenkins构建编号,例如1.119、1.120、1.121等,而不是"0"。

这是我的build.gradle文件。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

构建脚本 build.sh

#!/bin/bash
gradle clean 
gradle build
#. run_android_ui_tests.sh

我的gradle.properities文件仅包含注释。

4个回答

22

通过将这两个字符串插入到 build.gradle 的 defaultConfig 中解决了问题:

def env = System.getenv()
versionName "1." + env['BUILD_NUMBER']
替代
versionName "1.0"

1

你需要对Manifest或build.gradle进行一些预处理。

例如:

  1. 第一步构建是运行某个脚本以粘贴所需版本。
  2. 第二步构建是构建应用程序。

我建议您获取一个系统值,可以在每个构建中确定,以便在构建配置中自己更改应用程序的版本。


好的,我需要插入什么命令?据我所知,我应该在Java中粘贴类似于“gradle.setAppVersion(“1。”+ String.valueOf(getLasJenkinsBuildNumber()+ 1))”这样的内容。但是在Bash中,这个字符串看起来是什么样子的呢? - amazingbasil
你可以在这里找到你需要的例子 https://dev59.com/LmUp5IYBdhLWcg3w-Lez。或者在这里 http://jeffreysambells.com/2013/02/14/build-your-android-apk-with-the-manifest-version-number。 - dilix

0
最佳方案是使用Gradle Release插件。使用此插件,您可以在您的清单文件中自动增加版本号。你可以 看这里
您也可以使用它为不同版本标记您的源代码树。

0

在 build.gradle 中的配置应该是

defaultConfig {
    ...

    versionName System.getenv("APP_VERSION") as String ?: "3.0.0 (Default)"

    ...
}

Jenkins配置以解析构建参数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接