【问题标题】:Why does ant ignore task jars in $HOME/.ant/lib/为什么 ant 忽略 $HOME/.ant/lib/ 中的任务 jar
【发布时间】:2009-12-15 19:07:33
【问题描述】:

配置:我正在使用 Fedora 发布的 ant 运行 Fedora 12:

  • ant-1.7.1-12.fc12
  • java-1.6.0-openjdk-1.6.0.0-33.b16.fc12

我的$HOME/.ant/lib/ 中有svnant.jarsvnClientAdapter.jar

我正在使用以下build.xml

<project name="antlibtest" default="doEcho">
    <taskdef resource="svntask.properties"/>

    <target name="doEcho">
        <echo message="Hello World!"/>
        <echo message="ANT_HOME=${ant.home}"/>
        <echo message="classpath=${java.class.path}"/>
    </target>
</project>

执行构建文件时,出现以下错误: [taskdef] 无法从资源 svntask.properties 加载定义。找不到。

如果我将 ANT_HOME 设置为 /usr/share/ant/,它将完美运行。

在这两种情况下,我的主目录中的 jar 都清楚地位于类路径的输出中。

如何在不使用我自己的 ant、ANT_HOME 和 ant --noconfig 副本的情况下完成这项工作?

【问题讨论】:

    标签: java linux ant


    【解决方案1】:

    这似乎是Bug 490542 中描述的问题(根据最后一条评论,这也适用于 Fedora 12)。遗憾的是,该错误仍处于 NEW 状态,因此我认为它不会在不久的将来得到解决。

    关于 ANT_HOME,/etc/ant.conf 不是像 here 解释的那样将其设置为 /usr/share/ant 吗?这可能已经过时了,但我无法检查它(而且我真的不明白应该如何在 Fedora 上设置它)。

    【讨论】:

    • 谢谢!我查看了驱动 ant 的 bash 脚本,我的 ANT_HOME 中的斜杠似乎是它在这种情况下工作的原因。如果 ANT_HOME=/usr/share/ant 则不起作用
    • 哦哦。那么在/etc/ant.conf 中将ANT_HOME 设置为/usr/share/ant/ 可以解决这个问题吗?
    • 在大多数情况下似乎是这样。在 Linux 上处理 Ant 初始化的 bash 脚本中存在某种错误匹配
    • 将 ANT_HOME 设置为 /usr/share/ant/(添加斜杠)为我解决了这个问题。
    • 这个 bug 在 CentOS 7.7 中仍然存在。在 /etc/ant.conf 中设置这个变量对我不起作用。必须在~/.bashrc 中添加export ANT_HOME='/usr/share/ant/'
    【解决方案2】:

    我刚刚遇到了与 maven-ant-tasks.jar 相同的问题。 Ant 在类路径中显示了 jar 文件,但在标签中没有找到它。 ANT_HOME 的更改对我不起作用,但我找到了另一个解决方案:

    可选的 jar 文件必须在 /etc/ant.d 的一个简单文本文件中注册,其中包含 jar 文件的名称(或路径),其中路径是相对于 /usr/share/java 而没有扩展名“.jar”。

    因此,例如,如果您想注册 maven-ant-tasks,只需将 maven-ant-tasks.jar(或它的符号链接)放入 /usr/share/java 并添加文件“maven-ant-tasks”到 /etc/ant.d 包含以下行:“maven-ant-tasks”。

    这至少对我在 openSuse 11.1 上有效。也许这对某人有帮助。

    汉尼斯

    【讨论】:

      【解决方案3】:

      我在 centos 7 google cloud build-in ant is 1.9.x 上遇到同样的问题 我尝试下载最新的 ant 1.10.x 但有同样的问题

      ANT_HOME 设置为/usr/share/ant/ 也可以解决它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 2011-02-19
        • 1970-01-01
        • 2010-10-31
        • 1970-01-01
        相关资源
        最近更新 更多