我首次在多模块项目中使用Gradle,并想知道是否有任何形式的共识对于这种努力进行依赖关系管理的权利/最佳方式。从我所知道的情况来看,有两种方法,第一种似乎更为广泛接受。它看起来像这样: [对不起,如果这个项目是跛脚! ]gradle中关于依赖关系管理的共识
-- MyProject
---- settings.gradle
---- build.gradle
---- coreProject
---- servicesProject
------ servicesSubProject
---- warProject
---- common
按照这一办法所有的管理是在一个单一的build.gradle文件来完成的(其它外部.gradle文件可以用来定义各种文物),以及个别项目的依赖将在各自的管理“项目”的定义部分是这样的:
project('servicesProject:servicesSubProject') {
dependencies {
compile project(':common')
compile spring.data
compile spring.framework.persistence
compile spring.framework.security
compile persistence.hibernate.core
compile persistence.postgresql
}
}
另一种方法是有一个的build.gradle文件这样每个子项目(这里子项目的依赖关系是在项目的build.gradle文件的依赖关系部分):
-- MyProject
---- settings.gradle
---- build.gradle
---- coreProject
------ build.gradle
---- servicesProject
------ build.gradle
------ servicesSubProject
-------- build.gradle
---- warProject
------ build.gradle
---- common
------ build.gradle
正如我所说,从我能读的内容来看,第一种方法似乎比第二种方法更为广泛。 Spring框架gradle文件以这种方式设置。然而,在我全速前进之前,我想我应该问问是否存在权衡或其他影响,我也应该知道。感谢您的任何想法!
彼得,谢谢你的洞察力。考虑到这一点,用于依赖管理的单一构建脚本方法将不能很好地扩展。所以如果你的子项目数量非常大,那么这种方法可能会比帮助更重要。但是,我们处于类似于春季的情况 - 少于20个子项目。让所有依赖关系轻松控制在一个地方似乎有所帮助。我们还有专门的子项目(wtp项目)以及用于控制特定版本的文件,但现在控制主项目中的依赖关系。 – JoeG 2012-08-10 12:51:12
如果以子项目名称命名build.gradle是有意义的,为什么不将它设置为默认值?你能否更清楚地认识这个公约的好处? – 2012-08-14 04:16:21
我敢打赌,使用带有许多打开文件的花哨IDE是很方便的。如果名称为 .gradle,而不是点击所有名为build.gradle的选项卡,则更容易找到正确的选项卡。 –
2015-03-05 03:57:52