【问题标题】:How to set android app version by number of build in Jenkins?如何通过 Jenkins 中的构建数量设置 android 应用程序版本?
【发布时间】: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。

【问题讨论】:

    标签: android jenkins gradle android-gradle-plugin


    【解决方案1】:

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

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

    而不是

    versionName "1.0"
    

    【讨论】:

      【解决方案2】:

      您必须对 Manifest 或 build.gradle 进行一些预处理。

      示例

      1. 第一个构建步骤是运行一些脚本来粘贴您需要的版本。
      2. 第二个构建步骤是构建您的应用。

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

      【讨论】:

      • 好的,我必须插入什么命令?据我了解,我应该在 java 中粘贴类似 "gradle.setAppVersion("1." + String.valueOf(getLasJenkinsBuildNumber() + 1))" 的内容。但是这个字符串在 bash 中到底是什么样子的呢?
      • 例如,您可以在 stackoverflow.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

        【讨论】:

          猜你喜欢
          • 2017-11-27
          • 2016-09-18
          • 2019-03-04
          • 2022-12-17
          • 2018-08-01
          • 2011-09-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多