我正在使用gradle的bebula.ospackage插件来创建特定的rpm。因此添加了以下内容
ospackage {
packageName = "rpmA"
packageGroup ="..."
...
}通过这种方式,我将创建一个名为rpmA的rpm。
我需要的是为其他问题创建一个以上的rpm包。rpmA,rpmB等,我不能简单地将上面的块放入不同的参数,因为最后一个会覆盖所有的,并且我仍然会得到一个rpm。
任何想法。如何创建多个rpms?
发布于 2018-05-07 18:54:30
通常Gradle假设一个项目可以有多个工件,但是nebula.ospackage插件只处理每个(子)项目一个转数。
您仍然可以通过创建多项目构建来做到这一点。在gradle guides上有一个很好的指南,或者参考手册是also at gradle.org。
为每个RPM设置一个子项目:
rootproject/
build.gradle
settings.gradle
subproject1/
subproject2/使用settings.gradle文件告诉根项目包括子项目:
include 'subproject1', 'subproject2'此设置允许您在rootproject的build.gradle中配置大多数子项目的RPM设置,例如使用subprojects {构造。
(我认为将每个项目限制在一个RPM是一个合理的限制,因为它使DSL变得简单得多。通常,理想的做法是在尽可能少的RPM包中交付软件项目。当您需要多个RPM时,您可能希望在单独的项目中构建源代码,并保持源项目的版本。)
发布于 2019-09-07 14:58:30
您可以使用此方法创建您选择的多个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.rpmhttps://stackoverflow.com/questions/49128400
复制相似问题