如何在Gradle中为所有子项目定义存储库

时间:2013-05-08 15:59:00

标签: gradle build-script

我正在编写Gradle脚本来构建很多项目。他们使用相同的存储库,因此我想为所有子项目定义存储库,而不是在每个子项目中定义。 因此,我尝试将存储库定义从单个项目中的build.gradle移动到其父文件夹中的build.gradle。

subprojects{
    repositories{
        mavenCentral()
        flatDir{
            name 'uploadRepository'
            dirs '../../sharedlib'
        }
    }
}

但是,子项目根本找不到存储库定义。在子项目关闭工作中移动其他配置。我尝试过依赖项和属性配置。他们都没有问题。我不知道为什么存储库的工作方式不同。 谷歌搜索时,我找不到任何将子存储库放在子项目中的例子,我怀疑我这样做是错误的。请告诉我出了什么问题。 谢谢!

2 个答案:

答案 0 :(得分:1)

我终于弄明白了问题所在。 最初,我错过了父文件夹中的settings.gradle。 (我不知道为什么依赖配置工作即使没有这个文件) 在我把它放入之后,子项目可以找到存储库,但我在父项目中定义的依赖项和一个属性(sourceCompatibility = 1.5)不再有效。 我必须将apply插件:'war'从子项目的build.gradle移动到父项的子项目{...} 我认为这是因为依赖项和sourceCompatibility是插件提供的东西。不知怎的,Gradle没有查看子项目的脚本来先找到插件。

答案 1 :(得分:0)

您的存储库声明看起来很好,除了在project.repositories块中但未在上传任务中声明上传存储库(例如uploadArchives)。 Gradle User Guide有详细信息。