gpt4 book ai didi

java - 通过 Jenkins 在 Android Gradle 中设置构建属性

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:48 25 4
gpt4 key购买 nike

如何告诉 Jenkins 在 Android 项目的 gradle.properties 内设置属性?我已经弄清楚如何将属性从 Gradle 获取到 Jenkins(通过使用 EnvInject 插件并简单地在属性文件字段中输入 gradle.properties),但我还希望将 Jenkins 管理的构建号注入(inject)到构建 Artifact 中。

我还想设置生成的 Artifact 的文件名,我认为需要使用 archivesBaseName 注入(inject)该文件名。但该属性不是 gradle.properties 的一部分,所以我想知道如何访问它?

到目前为止,我只找到了更改 Android 项目本身中的 build.gradle 文件(或其他 gradle 脚本)的解决方案。但这不是我想要做的,因为这会让 Android 代码库依赖于 Jenkins。

相反,我希望 Jenkins 在编译代码之前向 Android 项目提供内部版本号和 Artifact 文件名。

服务器在 Mac 上运行。有人有解决方案吗?任何能够完成这项工作的 shell/Groovy 脚本都会受到欢迎。

最佳答案

我们只是编写一个文件version.properties,它是由jenkins“echo“VERSION_CODE=${BUILD_NUBMER}”> version.properies”脚本生成的。

然后 gradle 脚本将其导入如下:

// Version code is loaded from a properties file
def versionPropsFile = file('version.properties')
if (versionPropsFile.canRead()) {
def Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))

def code = versionProps['VERSION_CODE'].toInteger()

versionCode code
}
else {
throw new GradleException("Could not read version.properties!")
}

buildConfigField "String", " some _VERSION", "\"${getVersionString()}\""
}

关于java - 通过 Jenkins 在 Android Gradle 中设置构建属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37358243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com