5

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

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

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

4

2 回答 2

1

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

于 2013-05-09T14:50:01.393 回答
0

您的存储库声明看起来不错,除了上传存储库没有在project.repositories块中声明而是在上传任务中声明(例如uploadArchives)。Gradle 用户指南有详细信息。

于 2013-05-09T10:40:36.783 回答