如何在Android中获取Jenkins内部版本号?

时间:2018-04-19 12:20:33

标签: java android

如何在Android java文件/代码中获取Jenkins内部版本号,因为jenkins将在每次构建后生成内部版本号,并且Android应用程序应该从jenkins动态捕获jenkins内部版本号。

我在Build.gradle文件中做了同样的事情

def BUILD_NUMBER = System.getenv("BUILD_NUMBER") ? System.getenv("BUILD_NUMBER") : "0"
def PversCode = "90$BUILD_NUMBER"
print ("VersionCode is....." + "90$BUILD_NUMBER")
versionCode PversCode as Integer
def PversName = "9.0.$BUILD_NUMBER"
versionName PversName as String
print ("VersionName is....." + "9.0.$BUILD_NUMBER")

但是我如何使用java代码呢?

2 个答案:

答案 0 :(得分:1)

这是一个maven项目吗?

Jenkins设置了一些你可以阅读的环境变量: https://wiki.jenkins.io/display/JENKINS/Building+a+software+project

此外,您可以尝试这样的事情: mvn clean install -Dbuild.number=${BUILD_NUMBER}。 build.number是你的pom中的财产。当然,您可以在此之后编写此内部版本号以显示并从Java代码访问它。

答案 1 :(得分:0)

您需要将BuildNumber从Jenkins传递给BuildConfig.java 在你应用的build.gradle中:

android {
...
    defaultConfig {
        buildConfigField "long", "BUILD_NUMBER", "$BUILD_NUMBER"
        ....
    }
}

在您的项目的build.gradle中:

buildscript {
    ext{
        BUILD_NUMBER = 7
    }
    ....
}

最后,当您触发构建时,您可以在jenkins中执行以下操作:

gradlew assembleDebup -PBUILD_NUMBER=$BUILD_NUMBER

每当您想在代码中访问此值时,您可以执行以下操作:

long jenkinsBuildNumber = BuildConfig.BUILD_NUMBER;