如何通过 Jenkins 中的构建数量设置 android 应用程序版本?
Posted
技术标签:
【中文标题】如何通过 Jenkins 中的构建数量设置 android 应用程序版本?【英文标题】:How to set android app version by number of build in Jenkins? 【发布时间】:2014-11-05 06:04:50 【问题描述】:推送成功后jenkins自动构建应用,但版本始终为1.0。我想在 jenkins 中插入相应构建的数量而不是“0”:1.119、1.120、1.121...
那是我的 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 只包含 cmets。
【问题讨论】:
【参考方案1】:通过将这两个字符串插入到 build.gradle 的 defaultConfig 中解决了问题:
def env = System.getenv()
versionName "1." + env['BUILD_NUMBER']
而不是
versionName "1.0"
【讨论】:
【参考方案2】:您必须对 Manifest 或 build.gradle 进行一些预处理。
示例
-
第一个构建步骤是运行一些脚本来粘贴您需要的版本。
第二个构建步骤是构建您的应用。
我建议您获取可以在每个构建中确定的系统值,以便您可以在构建配置中自己更改应用程序的版本。
【讨论】:
好的,我必须插入什么命令?据我了解,我应该在 java 中粘贴类似 "gradle.setAppVersion("1." + String.valueOf(getLasJenkinsBuildNumber() + 1))" 的内容。但是这个字符串在 bash 中到底是什么样子的呢? 例如,您可以在 ***.com/questions/14895123/… 找到您需要的示例。或在这里jeffreysambells.com/2013/02/14/…【参考方案3】:最好的方法是为此使用 gradle 发布插件。使用它,您可以在清单文件中执行自动版本更新。你可以有一个look here
您可以使用它来标记您的源代码树以及不同的版本。
【讨论】:
【参考方案4】:build.gradle 中的配置应该是
defaultConfig
...
versionName System.getenv("APP_VERSION") as String ?: "3.0.0 (Default)"
...
Jenkins Configuration for parse the build parameter
【讨论】:
以上是关于如何通过 Jenkins 中的构建数量设置 android 应用程序版本?的主要内容,如果未能解决你的问题,请参考以下文章