【问题标题】:Implement rpm task in gradle在 gradle 中实现 rpm 任务
【发布时间】:2014-12-18 02:58:33
【问题描述】:

我正在尝试从 ant 迁移到 gradle 以构建我的 rpm 包。我找到了一个插件gradle-ospackage-plugin,但我无法理解如何使用我在 ant 任务中拥有的任何命令:specFile, topDir, command, cleanbuildDir, failonError

难道不能将它们放在 gradle 中吗?

更新:基本上我正在尝试在 gradle 中复制以下内容

<target name="myrpm">
    <rpm specFile = "topdir"
         topDir = "topdir" />
</target>

我还在研究从 gradle 运行 ant 任务,例如 ant.echo(message: "hello)。 但是ant.rpm 没有解决。

【问题讨论】:

  • 问题不清楚。究竟是什么问题?提到的命令在哪里定义?插件有什么问题?
  • 您可以或者使用ant.rpm任务, Gradle插件,例如gradle-ospackage-plugin。作为一般准则,如果存在 Gradle 插件,我会首先尝试。据我记得,gradle-ospackage-plugin 在其 Github 页面上的记录非常好。
  • @PeterNiederwieser。我正在尝试ant.rpm。但它不起作用。我不断收到找不到属性“rpm”。我需要在类路径中导入任何内容吗?
  • 第三方Ant任务需要导入(详见Gradle User Guide)。
  • 我不认为rpm是第三方蚂蚁任务。我不必在 ant 类路径中导入任何东西来使用 ant 进行构建。

标签: ant gradle build.gradle rpmbuild


【解决方案1】:

创建两个 RPM 的简单示例。如果您想要一个 RPM,则使用一项任务。你的 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

【讨论】:

  • 很好的例子适用于复制/粘贴第一次尝试!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 2014-03-30
  • 2019-03-13
  • 1970-01-01
相关资源
最近更新 更多