在 Jenkins 管道中从 build.gradle 读取 android 的版本名称
Read android's versionName from build.gradle in Jenkins pipeline
我的 Android 项目有一个 (Windows) Jenkins 管道,我正在尝试获取 build.gradle
文件中定义的 versionName
。根据 and 我有以下设置:
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.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 项目有一个 (Windows) Jenkins 管道,我正在尝试获取 build.gradle
文件中定义的 versionName
。根据
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.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}"