build.gradle中的任务太多
作为我的大型多项目构建的一部分,我对各种devops事物有大约25个任务。build.gradle中的任务太多
项目的结构看起来像这样
RootProject
-buildSrc
-DirectoryA
-SubProjectA1
-SubProjectA2
-SubProjectA3
-DirectoryB
-SubProjectB1
-SubProjectB2
-DirectoryC
-SubProjectC1
-SubProjectC2
等。
目录是那里只是为了方便不同的项目。 RootProject and all SubProject have build.gradle files。
在RootProject build.gradle文件中,大约有25个任务。 这些任务在根项目和子项目上进行配置。
他们让build.gradle相当长和复杂。所以我想将它们移动到单独的Tasks.gradle文件下,位于buildSrc目录下。然后用“拉起来”
这是一个很好的做法还是有更好的方法?
如果我拉他们,还有另一个问题。一些任务配置为子项目,其他配置为RootProject。所以我不能把它们放到单个文件的Tasks.gradle文件中。
我应该然后把它们弄成RootProjectTasks.gradle和SubProjectsTasks.gradle?
这一切都感觉有点不对劲......
如果使用詹金斯构建,那么你应该做的build.gradle为每个子项目,也为根项目。
在Jenkins中,您可以多次调用Gradle脚本。 因此,您可以逐个调用每个build.gradle文件。
还有另一种方法来调用每个build.gradle子项目通过只调用根项目build.gradle。 对于您必须settings.gradle
添加以下行包括“:子PROJECT1名称”,“:分项目2名”,“:分项目3名”,
随意获取更多信息
不要把*.gradle
文件到文件夹buildSrc。该buildSrc文件夹是应该buildSrc/src/main/groovy
组织就像一个项目,并且只包含*.java
或*.groovy
文件嵌套的项目文件夹。
您可以提取任务分解成独立的gradle这个文件,并通过apply from
囊括其中。适用于所有项目,可以去这里
任务:仅适用于所有子项目可以去这里
allprojects {
apply plugin: 'idea'
}
任务:
subprojects {
apply plugin: 'java'
}
您可以也包括他们直接从子模块是需要他们。或只适用于一些子项目,像这样:
def clientProjects() {
return subprojects.findAll {
// some predicate that is true only for client projects
}
}
configure(clientProjects()) {
apply plugin: ...
}
的可能的复制[有没有办法分裂/因数出摇篮建设的公共部分(https://stackoverflow.com/questions/2566685/is-there -a路到分裂因子超出普通零件-的-gradle这个建造) – tkruse