android - 如何在 gradle 任务中检索库版本

标签 android gradle android-gradle-plugin

假设项目依赖声明如下:

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()
    }
}

关于android - 如何在 gradle 任务中检索库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57854078/

相关文章:

android - FrescoImageViewer给出未经授权的错误

android - 未能解决所有 Google 依赖项

android - Gradle NDK 在生成的 Android.mk 中指定 'include' 指令

android - 错误 :Gradle: Execution failed for task ':app:crashlyticsCleanupResourcesDebug' . > Crashlytics 开发人员工具错误

android - 如何通过Gradle插件修改配置?

c++ - 如何使用 C++ native 代码链接到 Android Studio 项目中的 GLES2

android - 如何在 android 中使用 Dictionary(如 iphone NSDictionary)?

android - 位图内存不足错误

java - 从手机导入联系人以在 Android 中的我的应用程序中列出

android - 在不同的过程中打开相机