为什么ant忽略$ HOME / .ant / lib /

configuration:我使用Fedora发布的ant运行Fedora 12库存:

  • ant1.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> 

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

如果我将ANT_HOME设置为/usr/share/ant/它可以完美地工作。

在这两种情况下,我的主目录中的jar都清楚地显示在classpath的输出中。

我如何做这个工作,而不诉诸我自己的副本ant,ANT_HOME和ant – noconfig?

这似乎是问题490542中描述的问题(根据最后的评论,也适用于Fedora 12)。 不幸的是,这个错误仍然处于新的状态,所以我不认为它会在不久的将来得到解决。

关于ANT_HOME,没有/etc/ant.conf将其设置为/usr/share/ant如下所述? 这可能是过时的,但我不能检查它(我真的不知道这应该如何设置在Fedora上)。

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

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

所以,如果你想注册maven-ant-tasks,那么简单地把maven-ant-tasks.jar(或者它的符号链接)放到/ usr / share / java中,然后把文件“maven-ant-tasks”添加到/ etc /ant.d由以下行组成:“maven-ant-tasks”。

这对openSuse 11.1来说至少对我来说是有效的。 也许这有助于某人。

汉纳斯

我得到同样的问题在谷歌云内置蚂蚁1.9.x我试图下载最新的蚂蚁1.10.x但有同样的问题

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