【问题标题】:RPM Build with Gradle使用 Gradle 构建 RPM
【发布时间】:2016-01-17 23:00:31
【问题描述】:

有没有人对从多个工件及其依赖项(如 maven)构建 rpm 包有一个好主意。

示例:proj1.4.1.0 及其依赖项 & proj2.4.1.0 及其依赖项。

我如何定义 gradle build 以从 nexus 中提取这些工件并构建 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 

【问题讨论】:

  • 你研究过 nebula ospackage 插件吗? github.com/nebula-plugins/gradle-ospackage-plugin
  • 是的,我做到了,但它并没有告诉我如何实现我想要的。那些从nexus中获取的发布版本并将其放入rpm包中以安装在目标目录中。

标签: gradle build rpm packaging


【解决方案1】:

检查这个例子。 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'
}

您可以像这样创建 RPM:

./gradlew clean two one

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2023-02-21
    • 2017-05-31
    • 2016-12-14
    • 2016-11-06
    • 2010-12-25
    • 2021-04-29
    相关资源
    最近更新 更多