是什么allprojects和子项目之间的区别(What is the difference bet

2019-06-27 06:08发布

在多项目gradle这个身材,谁能告诉我到底什么是“allprojects”部分和“子项目”之间的区别? 就在父目录? 有没有人同时使用? 如果是这样,你有一般的规则,决定了通常被放在每一个?

相关的问题:是什么样的两种语法(真的allprojects和子项目)之间的区别:

subprojects {  ...
}

configure(subprojects) { ...
}

当你一个比其他?

Answer 1:

在多项目gradle这个版本,您有rootProject和子项目。 两者的结合是allprojects。 该rootProject就是构建从开始。 一个常见的模式是rootProject没有代码和子项目Java项目。 在这种情况下,应用Java插件只子项目:

subprojects {
    apply plugin: 'java'
} 

这将相当于刚刚建立的子模块一个maven聚合聚甲醛项目。

关于两种语法,他们做同样的事情。 第一个只是看起来更好。



Answer 2:

添加到瑞安的答案,在configure时要配置的对象的自定义子集的方法就变得很重要。 例如configure([project(":foo"), project(":bar")]) { ... }configure(tasks.matching { it.name.contains("foo") }) { ... }

当使用allprojectssubprojects视情况而定。 你会经常同时使用。 例如,代码相关的插件,像Java插件通常应用于subprojects ,因为在很多构建根项目不包含任何代码。 在Eclipse和IDEA插件,在另一方面,通常被施加到allprojects 。 如果有疑问,看看实例和其他建立和/或实验。 总体目标是,以避免不相关的配置。 在这个意义上, subprojects优于allprojects只要它给出了预期的效果。



文章来源: What is the difference between allprojects and subprojects
标签: gradle