为什么ant忽略$ HOME / .ant / lib /中的任务jar

时间:2009-12-15 19:07:34

标签: java linux ant

配置:我正在使用Fedora发布的蚂蚁运行Fedora 12库存:

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

我的svnant.jar

中有svnClientAdapter.jar$HOME/.ant/lib/

我正在使用以下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副本的情况下完成这项工作?

3 个答案:

答案 0 :(得分:1)

这似乎是Bug 490542中描述的问题(根据上一条评论也适用于Fedora 12)。可悲的是,这个bug仍处于新状态,所以我认为它不会在不久的将来得到解决。

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

答案 1 :(得分:1)

我和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上对我有用。也许这有助于某人。

汉纳斯

答案 2 :(得分:0)

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

ANT_HOME设置为/usr/share/ant/也可以解决此问题。