用Gradle构建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

有没有人对如何从多个工件及其依赖项(如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/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包中,安装在目标目录中。