我正在使用带有gradle的bebula.ospackage插件来创建特定的rpm。 所以添加以下内容
ospackage {
packageName = "rpmA"
packageGroup ="..."
...
}
通过这种方式,我将创建一个名为rpmA的rpm创建。
我需要为其他问题创建多个rpm包。 rpmA,rpmB等 我不能简单地将上面的块放在不同的参数上,因为最后一个会覆盖所有的,我仍然会得到一个rpm。
任何想法。如何创建多个rpm?
答案 0 :(得分:0)
通常Gradle假定项目可以有多个工件,但nebula.ospackage插件只处理每个(子)项目一个RPM。
您仍然可以通过创建多项目构建来完成此操作。 gradle guides有一个很好的指南,或者参考手册是also at gradle.org。
每个RPM设置一个子项目:
rootproject/
build.gradle
settings.gradle
subproject1/
subproject2/
告诉根项目使用settings.gradle
文件包含子项目:
include 'subproject1', 'subproject2'
此设置允许您使用build.gradle
构造在rootproject
的{{1}}中配置大多数子项目的RPM设置。
(我认为将每个项目限制为一个RPM是一个合理的限制,因为它使DSL变得更加简单。通常,理想的做法是尽可能少地提供RPM软件包。当你需要几个RPM时,你可能想在单独的项目中构建源代码,并保持源项目单独版本化。)
答案 1 :(得分:0)
您可以使用这种方式创建您选择的多个rpm:
plugins {
id 'java'
id "nebula.ospackage" version "3.2.0"
}
task one(type: Rpm) {
packageName = 'one-pack'
version = '1.0.0'
release = '1'
arch = I386
os = LINUX
from('./src/main/resources') {
into 'apps/lib/'
}
}
task two(type: Rpm) {
packageName = 'two-pack'
version = '2.2.0'
release = '2'
arch = I386
os = LINUX
}
apply plugin: 'nebula.ospackage'
group 'com.avishek'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'org.assertj:assertj-core:3.2.0'
}
一旦有了此gradle文件,请按以下步骤构建它们:
./gradlew clean two one
您将创建两个不同的rpm文件,如下所示:
./build/distributions/one-pack-1.0.0-1.i386.rpm
./build/distributions/two-pack-2.2.0-2.i386.rpm