gradle - Gradle构建脚本是否可以使用与父build.gradle文件相同的存储库?

标签 gradle build.gradle gradle-plugin

我有一个build.gradle文件,在buildscript块中包含存储库定义,如下所示:

buildscript {
    repositories {
        // Several proprietary repositories are declared
    }
    dependencies {
        classpath "com.example:foo:1.0"
    }
}

apply from: "bar.gradle"

我想bar.gradlefoo依赖项导入一个类。根据this answer的说法,该方法是在buildscript中复制bar.gradle块。

但是,我想减少代码重复,因为存储库列表相当长并且可能会更改。是否可以让bar.gradle引用父build.gradle中声明的存储库?

到目前为止,我在bar.gradle中尝试了此操作:
buildscript {
    repositories {
        project.buildscript.repositories
    }
    dependencies {
        classpath "com.example:foo:1.0"
    }
}

但不幸的是,我仍然收到错误消息,说未定义存储库。

最佳答案

如果您未在buildscript中应用某些内容,则您的buildscript无法引用它

尝试...

buildscript.gradle

project.buildscript {
    repositories  {
        someRepo()
    }   
    dependencies{
        classpath 'some:dependency:0.1.0'
    }
}

build.gradle
buildscript {
    apply from: "buildscript.gradle"
}

关于gradle - Gradle构建脚本是否可以使用与父build.gradle文件相同的存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57435127/

相关文章:

java - Gradle - 如何从 GitHub 创建和获取简单的类

gradle - 如何在Gradle中独立运行单个groovy类文件?

android - 任务 ':app:processDebugResources' 执行失败。 Gradle 构建失败

android - 如何使用Android Gradle插件提供的Transform API?

gradle - Gradle属性在扩展容器封闭中不可见

android - 错误:.dex文件中方法引用的数量不能超过64k

gradle - Ant-style 模式匹配多种文件类型

gradle - 非并行构建中的Gradle并行构建错误

gradle - Gradle中的并行复制任务

android - Kotlin 多平台 : Plugin [id: 'com.android.library' ] was not found