【问题标题】:How to make Redline RPM Library work with Ant?如何使 Redline RPM 库与 Ant 一起工作?
【发布时间】:2014-10-07 18:50:36
【问题描述】:

我使用 Ant 作为构建工具,我一开始就把这行代码放到了我的 Ant 脚本中:

<taskdef name="pure-java-rpm" classname="org.redline_rpm.ant.RedlineTask" classpath="lib/ant/redline-1.1.16.jar" />

我叫它进一步:

<pure-java-rpm group="Games" name="${project-unix-name}" version="0" destination="${destdir}">
        <zipfileset prefix="/usr/share/games/${project-unix-name}" file="${destdir}/${game-jar-filename}"/>
        <depends name="java" version=">= 1.7"/>
    </pure-java-rpm>

我收到以下错误消息: 构建失败 /home/gouessej/Documents/programmation/java/workspace/tuer/build.xml:445: java.lang.NoClassDefFoundError: org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStream

但是,Apache Commons Compress 没有被提及,根据the "usage" page,它似乎不是这个库的依赖项。我真的必须将 Apache Commons Compress 添加到此任务定义的类路径中才能使其工作吗?还有其他解决方案吗?

【问题讨论】:

    标签: java ant package redhat rpm


    【解决方案1】:

    说明没有提及依赖项,您至少需要 SLF4J、Bountycastle、XZ 和 Apache Commons Compress 才能使用 Redline RPM。我刚刚修改了我的任务定义:

    <taskdef name="pure-java-rpm" classname="org.redline_rpm.ant.RedlineTask">
        <classpath>
            <pathelement path="bcpg-jdk15on-151.jar"/>
            <pathelement path="commons-compress-1.8.1.jar"/>
            <pathelement path="slf4j-api-1.7.7.jar"/>
            <pathelement path="slf4j-simple-1.7.7.jar"/>
            <pathelement path="xz-1.4.jar"/>
            <pathelement path="redline-1.1.16.jar"/>
        </classpath>
    </taskdef>
    

    您可以在此处找到这些 JAR:

    Apache Commons Compress

    Bouncycastle

    SLF4J

    XZ

    【讨论】:

    • 这些应该是过去的问题:)。我建议你使用具有完整依赖管理的maven 构建工具。有了蚂蚁,你可以使用Ivy
    • 首先,Redline RPM 也可以与 Maven 一起使用。其次,Maven 本身并不能解决这个问题,rpm-maven-plugin 需要原生 RPM 支持。在没有原生支持 RPM 构建工具的平台上构建 RPM 已不再是过去的问题。 Redline RPM 部分解决了这个问题。最后,切换到 Maven 需要遵循严格的目录布局,这不是微不足道的,如果没有额外的插件,它就无法解决我的问题。如果 pom 文件中缺少某些依赖项,了解它们仍然有助于修复它。切换到最新的流行工具并不能解决所有问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多