使用Gradle

时间:2016-02-23 08:00:38

标签: gradle rpm multi-project

我有以下项目结构:

Root
+---Sub1
|
+---Sub2

Sub1项目生成JAR,Sub2创建WAR。 Root项目目标是生成包含Sub1Sub2输出的RPM。

我正在尝试使用ospackage Gradle插件来构建RPM。以下是根build.gradle的一部分:

ospackage {
    from subprojects.collect { it.tasks.withType(Zip) } into 'lib'
}

它可以工作但是Sub2创建了JAR和WAR,这是不可取的。

为了将适当的罐子和战争收集到RPM,应该采用什么配置?

更新

我正在寻找一些通用的解决方案,即子项目的迭代比指定每个子项目的行为更可取。

1 个答案:

答案 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'
    }
}