在多项目gradle构建中,有人可以告诉我"allprojects"部分与"子项目"部分之间究竟有什么区别?只是父目录?有没有人同时使用?如果是这样,您是否有一般规则来确定每个规则的典型含义?
相关问题:两种语法之间有什么区别(实际上对于所有项目和子项目):
subprojects { ...
}
Run Code Online (Sandbox Code Playgroud)
和
configure(subprojects) { ...
}
Run Code Online (Sandbox Code Playgroud)
你什么时候一个在另一个?
小智 110
在多项目gradle构建中,您有一个rootProject和子项目.两者的结合都是项目.rootProject是构建开始的地方.常见的模式是rootProject没有代码,子项目是java项目.在这种情况下,您只将java插件应用于子项目:
subprojects {
apply plugin: 'java'
}
Run Code Online (Sandbox Code Playgroud)
这相当于只构建子模块的maven聚合pom项目.
关于这两种语法,它们完全相同.第一个看起来更好.
Pet*_*ser 42
除了Ryan的答案之外,configure当您想要配置对象的自定义子集时,该方法也很重要.例如configure([project(":foo"), project(":bar")]) { ... }或configure(tasks.matching { it.name.contains("foo") }) { ... }.
何时使用allprojectsvs. subprojects取决于具体情况.通常你会同时使用两者.例如,通常应用与Java插件相关的代码相关插件subprojects,因为在许多构建中,根项目不包含任何代码.另一方面,Eclipse和IDEA插件通常适用于allprojects.如有疑问,请查看示例和其他构建和/或实验.总体目标是避免不相关的配置.在这个意义上说,subprojects是不是更好allprojects,只要它给出了预期的效果.
| 归档时间: |
|
| 查看次数: |
32587 次 |
| 最近记录: |