gpt4 book ai didi

android - 从 Jenkins 管道中的 build.gradle 中读取 android 的版本名称

转载 作者:行者123 更新时间:2023-11-29 23:23:34 26 4
gpt4 key购买 nike

我的 Android 项目有一个 (Windows) Jenkins 管道,我正在尝试获取 build.gradle 文件中定义的 versionName。根据https://stackoverflow.com/a/51067119/5973853https://stackoverflow.com/a/47437369/5973853我有以下设置:

build.gradle

android {
defaultConfig {
versionCode 71
versionName "2.3.0.Beta10"
}
}

task versionName{
doLast {
println android.defaultConfig.versionName
}
}

Jenkinsfile

pipeline {
environment {
SERVER_PATH = '\\\\ARK_SRV\\Android\\'
}
agent any

stages {

stage('Create Directory') {
steps {
script {
def VERSION_NAME = bat (script: "./gradlew -q versionName", returnStdout: true).trim()
echo "Version Name: ${VERSION_NAME}"
def FINAL_DIR = SERVER_PATH + VERSION_NAME
echo "Final Directoy: ${FINAL_DIR}"
// ...
}
}
}

}

}

不过,我将整个批处理命令及其输出都保存到 VERSION_NAME 变量中,因此打印输出如下所示:

实际值

Version Name: C:\Program Files (x86)\Jenkins\workspace\AndroidTest>./gradlew -q versionName 
2.3.0.Beta10

Final Directoy: \\ARK_SRV\Android\C:\Program Files (x86)\Jenkins\workspace\AndroidTest>./gradlew -q versionName
2.3.0.Beta10

预期值

Version Name: 2.3.0.Beta10

Final Directoy: \\ARK_SRV\Android\2.3.0.Beta10

我做错了什么?是否有更好的方法从我的 build.gradle 中检索 defaultConfig 值?

最佳答案

您可以拆分输出并根据您的情况获取所需的输出部分,您可以尝试以下几行:

def output = bat (script: "./gradlew -q versionName", returnStdout: true).trim()
def VERSION_NAME = output.split('\n')[1]
echo "Version Name: ${VERSION_NAME}"

关于android - 从 Jenkins 管道中的 build.gradle 中读取 android 的版本名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872753/

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