我有以下项目结构:
Root
+---Sub1
|
+---Sub2
Sub1
项目生成JAR,Sub2
创建WAR。
Root
项目目标是生成包含Sub1
和Sub2
输出的RPM。
我正在尝试使用ospackage
Gradle插件来构建RPM。以下是根build.gradle
的一部分:
ospackage {
from subprojects.collect { it.tasks.withType(Zip) } into 'lib'
}
它可以工作但是Sub2
创建了JAR和WAR,这是不可取的。
为了将适当的罐子和战争收集到RPM,应该采用什么配置?
更新
我正在寻找一些通用的解决方案,即子项目的迭代比指定每个子项目的行为更可取。
答案 0 :(得分:1)
解决方案是在Sub2
项目build.gradle
中添加WAR插件:
apply plugin: 'war'
使buildRpm
任务依赖于根构建文件中的所有子项目构建任务:
buildRpm.dependsOn getTasksByName('build', true)
最后配置ospackage
插件以将工件收集到目标RPM:
ospackage {
from(subprojects.collect { "${it.buildDir}/libs" }) {
into 'bin'
}
}