Could not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found.
当我尝试在 Eclipse 上构建 ant 时出现错误。所以我下载了 ant-contrib-0.6.jar 并将它保存在我/lib
的 apache ant 位置,但它仍然不能解决我的问题。我也尝试过在我的系统变量中指定/lib
位置。CLASSPATH
我怎样才能绕过这个错误?
6 回答
您可以使用“classpath”元素显式提供 ant-contrib JAR 的完整路径:
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${path-to-ant-contrib}/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
编辑:链接贡献者Djacomo
:
这个 StackOverflow 页面缺少的一件重要的事情是,设置正确的 ANT_HOME env var 是绝对重要和重要的,如果没有这个设置,ant 会一直报同样的错误,不管你在文件系统上复制 ant-contrib-1.0b3.jar 的位置. 这个丢失的东西花了我几个小时。=)
但是,在纯蚂蚁中,我在没有 Eclipse 的情况下收到此错误。
I fixed that this way:
Add the JAR to the Ant runtime classpath entries.
Window>Preferences>Ant>Runtime>Classpath
Add the JAR to either Ant Home Entries or Global Entries.
看来您还没有将 ant contrib jar 安装到正确的 lib 目录中。如果您安装了多个 ANT,这可能很难做到。
我的建议是将您的 ANT 插件安装到“$HOME/.ant/lib”目录中。您可以更进一步,将流程自动化,如下所示:
<project name="ant-contrib-tasks" default="all">
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<target name="bootstrap">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/ant-contrib.jar" src="http://search.maven.org/remotecontent?filepath=ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/>
</target>
<target name="all">
<for param="file">
<fileset dir="." includes="*.txt"/>
<sequential>
<echo message="Found file @{file}"/>
</sequential>
</for>
</target>
</project>
在构建 xml 中使用下面提到的代码:
<path id="ant.classpath">
<pathelement location="${ant.jarPath}/ant.jar" />
<pathelement location="${ant.jarPath}/ant-contrib-0.3.jar" />
</path>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath refid="ant.classpath" />
</taskdef>
在您的构建属性文件中:
ant.jarPath=D:/antjars
并将 ant.jar 和 ant-contrib-0.3.jar 放在目录:D:/antjars
检查您是否具有对 ant-contrib jar 文件的读取权限。
In our case after copying the file with another user it did not, giving the same error message.