用Gradle构建RPM
有没有人对如何从多个工件及其依赖项(如maven)构建rpm包有好的想法 示例:proj1.4.1.0及其依赖项&proj2.4.1.0及其依赖项 我如何定义gradle build来从nexus和build rpm包中提取这些工件,这两个项目在不同的目录结构中都有自己的依赖关系 所以我的目标是用Gradle构建RPM,gradle,build,rpm,packaging,Gradle,Build,Rpm,Packaging,有没有人对如何从多个工件及其依赖项(如maven)构建rpm包有好的想法 示例:proj1.4.1.0及其依赖项&proj2.4.1.0及其依赖项 我如何定义gradle build来从nexus和build rpm包中提取这些工件,这两个项目在不同的目录结构中都有自己的依赖关系 所以我的目标是 /some/installation/dir/projec_1/lib & /some/installation/dir/proj_2/lib, /some/installation/dir/p
/some/installation/dir/projec_1/lib & /some/installation/dir/proj_2/lib,
/some/installation/dir/projec_1/bin & /some/installation/dir/proj_2/bin
/some/installation/dir/projec_1/scripts & /some/installation/dir/proj_2/scripts
检查这个例子。build.gradle文件内容如下:
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'
}
./gradlew clean two one
您可以这样创建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'
}
./gradlew clean two one
你看过nebula ospackage插件了吗?是的,我做了,但它没有告诉我如何实现我想要的。这些发布版本将从nexus获取,并将其放入rpm包中,安装在目标目录中。