如何在 gradle 任务中检索库版本
How to retrieve library version in gradle task
假设项目依赖声明如下:
dependencies {
implementation 'io.mylib:core:1.0.0-SNAPSHOT'
// ....
}
我想要一个 gradle 任务来检索 mylib
依赖项并检查版本。如果 lib 的版本是 SNAPSHOT
,则构建失败。
像这样:
task checkLibVersion(){
version = getDependencyVersion("io.mylib:core") // <-- how to retrieve version
if(version.endsWith("-SNAPSHOT"){
throw new GradleException("Mylib uses snapshot version")
}
}
此任务将是发布管道的一部分,如果 mylib
的当前版本是快照,则作业将失败。
有谁知道如何从 gradle 任务中检索特定依赖项的版本?
好的,如果将版本号提取到扩展中,这似乎可以很容易地完成 属性:
在根项目的build.gradle
中:
buildscript {
ext.libVersion = '1.3.21-SNAPHOT'
// ....
}
task checkLibVersion(){
def version = "$libVersion"
if (version.endsWith("-SNAPSHOT")){
throw new GradleException("Mylib uses SNAPSHOT version!")
}
}
tasks.whenTaskAdded { task ->
if (task.name == 'assembleRelease') {
task.dependsOn checkLibVersion()
}
}
假设项目依赖声明如下:
dependencies {
implementation 'io.mylib:core:1.0.0-SNAPSHOT'
// ....
}
我想要一个 gradle 任务来检索 mylib
依赖项并检查版本。如果 lib 的版本是 SNAPSHOT
,则构建失败。
像这样:
task checkLibVersion(){
version = getDependencyVersion("io.mylib:core") // <-- how to retrieve version
if(version.endsWith("-SNAPSHOT"){
throw new GradleException("Mylib uses snapshot version")
}
}
此任务将是发布管道的一部分,如果 mylib
的当前版本是快照,则作业将失败。
有谁知道如何从 gradle 任务中检索特定依赖项的版本?
好的,如果将版本号提取到扩展中,这似乎可以很容易地完成 属性:
在根项目的build.gradle
中:
buildscript {
ext.libVersion = '1.3.21-SNAPHOT'
// ....
}
task checkLibVersion(){
def version = "$libVersion"
if (version.endsWith("-SNAPSHOT")){
throw new GradleException("Mylib uses SNAPSHOT version!")
}
}
tasks.whenTaskAdded { task ->
if (task.name == 'assembleRelease') {
task.dependsOn checkLibVersion()
}
}