使用 Gradle 将子项目中的构建工件收集到 RPM 中
Collect build artifacts from subprojects into RPM with Gradle
我有以下项目结构:
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 都会创建,这是不希望的。
为了将适当的 jar 和 wars 收集到 RPM 中,应该应用什么配置?
更新
我正在寻找一些通用解决方案,即对子项目进行迭代比为每个子项目指定行为更可取。
解决方案是在Sub2
项目的build.gradle
中添加WAR插件:
apply plugin: 'war'
使buildRpm
任务依赖于根构建文件中的所有子项目构建任务:
buildRpm.dependsOn getTasksByName('build', true)
最后配置 ospackage
插件以将工件收集到目标 RPM 中:
ospackage {
from(subprojects.collect { "${it.buildDir}/libs" }) {
into 'bin'
}
}
我有以下项目结构:
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 都会创建,这是不希望的。
为了将适当的 jar 和 wars 收集到 RPM 中,应该应用什么配置?
更新
我正在寻找一些通用解决方案,即对子项目进行迭代比为每个子项目指定行为更可取。
解决方案是在Sub2
项目的build.gradle
中添加WAR插件:
apply plugin: 'war'
使buildRpm
任务依赖于根构建文件中的所有子项目构建任务:
buildRpm.dependsOn getTasksByName('build', true)
最后配置 ospackage
插件以将工件收集到目标 RPM 中:
ospackage {
from(subprojects.collect { "${it.buildDir}/libs" }) {
into 'bin'
}
}