Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
antlib和classpathref_Ant_Classpath - Fatal编程技术网

antlib和classpathref

antlib和classpathref,ant,classpath,Ant,Classpath,我有以下build.xml文件: <?xml version="1.0" encoding="UTF-8"?> <project name="Minimal" default="default" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <path id= "libs.folder" > <fileset dir= "lib" >

我有以下build.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project name="Minimal" default="default" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <path id= "libs.folder" >
         <fileset dir= "lib" >
             <include name= "*.jar" /> 
         </fileset>
    </path>

    <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="libs.folder" /> 
    <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="libs.folder"/>
    <artifact:pom id="pom.file" file="pom.xml" />
    <property name="pom.version" value="${pom.file.version}"/>

   <groovy src="test.groovy">
    <arg line="3"/>
   </groovy>
...
运行生成文件时,我得到:

BUILD FAILED
....\build.xml:18: Problem: failed to create task or type antlib:org.apache.maven.artifact.ant:pom
Cause: The name is undefined.
Action: Check the spelling.
如果我使用:

ant -lib lib
它可以工作,但最好将所有内容都保存在build.xml文件中,就像groovy和svnant libs一样

maven-ant-tasks.jar是否可以这样做?

当您使用:

xmlns:artifact="antlib:org.apache.maven.artifact.ant"
如果没有typedef,则其libs必须位于ANTS类路径中。即
ANT_HOME/lib
${user.HOME}/.ANT/lib
或用
-lib
指定的任何文件夹。这就是为什么
ant-lib
有效的原因

如果像其他Antlib一样将其更改为typedef,它将正常工作

<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
           uri="antlib:org.apache.maven.artifact.ant"
           classpathref="libs.folder" />

将maven-ant-tasks-2.x.x.jar和maven-ant-tasks-2.x.x.pom复制到/lib


注意:在

上阅读更多内容是这样做修复了问题:嗨,我在ant的lib目录中有maven-ant-tasks-2.1.3.jar,但这似乎对我不起作用。你需要引用实际的jar。见此:
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
           uri="antlib:org.apache.maven.artifact.ant"
           classpathref="libs.folder" />