Vad*_*mmt 8 bash android gradle travis-ci
有没有办法versionName从build.gradleAndroid项目的文件中读取值以在bash中使用它?
更准确地说:如何从文件中读取该值并在Travis-CI脚本中使用它?我会像使用它一样
# ANDROID_VERSION=???
export GIT_TAG=build-$ANDROID_VERSION
Run Code Online (Sandbox Code Playgroud)
我设置了一个Travis-CI,就像这篇文章中描述的那样/sf/answers/1976149801/.
我的build.gradle:http://pastebin.com/uiJ0LCSk
eba*_*aud 10
我喜欢这个衬垫只获取不带引号的版本名称:
grep "versionName" app/build.gradle | awk '{print $2}' | tr -d \''"\'
Run Code Online (Sandbox Code Playgroud)
您可以定义自定义任务,即
task printVersion {
doLast {
println project.version
}
}
Run Code Online (Sandbox Code Playgroud)
并在Bash中执行它:
$ gradle -q pV
1.8.5
Run Code Online (Sandbox Code Playgroud)
感谢alnet的评论,我提出了这个解决方案(请注意Doug Stevenson的反对意见):
# variables
export GRADLE_PATH=./app/build.gradle # path to the gradle file
export GRADLE_FIELD="versionName" # field name
# logic
export VERSION_TMP=$(grep $GRADLE_FIELD $GRADLE_PATH | awk '{print $2}') # get value versionName"0.1.0"
export VERSION=$(echo $VERSION_TMP | sed -e 's/^"//' -e 's/"$//') # remove quotes 0.1.0
export GIT_TAG=$TRAVIS_BRANCH-$VERSION.$TRAVIS_BUILD_NUMBER
# result
echo gradle version: $VERSION
echo release tag: $GIT_TAG
Run Code Online (Sandbox Code Playgroud)
扩展Khozzy的答案,从build.gradle中检索Android包的versionName,添加以下自定义任务:
task printVersionName {
doLast {
println android.defaultConfig.versionName
}
}
Run Code Online (Sandbox Code Playgroud)
并调用它:
gradle -q printVersionName
Run Code Online (Sandbox Code Playgroud)
这个怎么样?
grep -o "versionCode\s\+\d\+" app/build.gradle | awk '{ print $2 }'
Run Code Online (Sandbox Code Playgroud)
该-o选项使grep只打印匹配的部分,因此可以确保传递给awk的只是模式versionCode NUMBER。
| 归档时间: |
|
| 查看次数: |
6402 次 |
| 最近记录: |