java - 如何使 Redline RPM 库与 Ant 一起工作?

标签 java ant package redhat rpm

我使用 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 添加到此任务定义的类路径中才能使其正常工作吗?还有其他解决办法吗?

最佳答案

说明中没有提及依赖项,您至少需要 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

关于java - 如何使 Redline RPM 库与 Ant 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193454/

相关文章:

r - 如果已加载,则分离 R 中的特定包

java - 为什么反向 DNS 表示法用于包命名?

java - org.flywaydb.core.api.FlywayException : Unable to instantiate JDBC driver when my java class is triggered from ant taskdef

swift - 在swift中判断一个目录是一个包

Java sql - 删除数据库表中的半行

java - 无法从列表中删除对象

Ant 解压缩任务 - 如何从提取的层次结构中排除存档名称?

java - hibernate Ant 工具

java - 记录 JDBC 访问的所有数据库对象

java - Google App Engine Java 上的 RESTful 应用程序?