gradle - 使用任务生成依赖关系内部版本号

标签 gradle android-gradle-plugin build.gradle

我试图使用任务为 Artifact 生成内部版本号,然后将其插入到我的依赖项中。我的任务看起来像这样:

task getCurrentBuild() {
 doFirst{
    if(! file('/folder/dailyBuildNumber.txt').exists()) {
        assert false,'Cannot find latest runtime build at /folder/dailyBuildNumber.txt'
    }
    else {
        ext.set("myVersion", file('folder/dailyBuildNumber.txt').getText('UTF-8'))
    }
  }
}

而我的依赖项看起来像这样:
 latestArtifactCompile "com.example.1.0-${project.ext.get("myVersion")}"

我收到错误消息,它找不到多余的东西或获取属性myVersion

最佳答案

doFirst闭包在执行阶段执行,但dependencies闭包在配置阶段之前执行。

为什么要在任务中生成依赖关系?在我看来,这似乎是每个构建所需的常规和强制性配置,而不是减少执行的任务。

关于gradle - 使用任务生成依赖关系内部版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741202/

相关文章:

android-studio - Android Studio 委托(delegate)BuildRunToGradle 有什么作用?

java - 为什么我得到了不受支持的主次版本 51.0

android - 为 Android Studio 错误安装 com.android.support.recyclerview-v7 的存储库

android - 将 gradle 版本升级到 4.1 后损坏的项目

java - 重复条目:com/google/android/gms/internal/zzqv.class Android Studio

android - 在gradlew中运行可执行文件

android-gradle-plugin - 仅向 Kotlin DSL 中的 "free"产品风格添加实现依赖

android - Gradle 构建无法解析所有 Path_provider 依赖项

android - 禁用gradle中的特定 Activity 库

java - 更新现有 Gradle Libs 依赖项,以在 Spring 项目中使用 Jackson 2.8.5 和 DynamoDB 编码 ZonedDateTime