2013-05-08 98 views
2

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

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

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

+0

“但是,子项目根本找不到存储库定义。”你怎么知道?你看到了哪个确切的效果(哪个任务失败,错误信息是什么等)? – 2013-05-08 16:32:29

+0

它与以下错误消息抱怨: *其中: 构建文件 'F:\ build_scripts \ TEMP \ build_standardization \实验\门户\ TFANetRegions \的build.gradle' 行:69 *出了什么问题: 的问题发生了评估根项目“TFANetRegions”。 >无法在存储库容器上找到属性'uploadRepository'。 – user1695166 2013-05-08 19:56:49

+0

我把settings.gradle放在包含我的子项目的父项目中。这使Gradle能够找到存储库。但是,现在它无法找到依赖关系和属性设置(sourceCompatibility = 1.5)。当settings.gradle不存在时,这不是问题。现在我很困惑settings.gradle实际上做了什么。 – user1695166 2013-05-08 20:00:05

回答

0

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

1

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

相关问题