2

次の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>
...

これは次の構造にあります。

my-project
  -> lib
     -> maven-ant-tasks.jar
     -> svnant.jar
     -> groovy-all.jar
     -> svnClientAdapter.jar
  -> build.xml
  -> pom.xml
  -> test.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

動作しますが、groovyやsvnant libsのように、すべてをbuild.xmlファイル内に保持しておくと便利です。

これはどういうわけかmaven-ant-tasks.jarで可能ですか?

4

2 に答える 2

6

maven-ant-tasks-2.xxjar と maven-ant-tasks-2.xxpom の両方を /lib にコピーします。

http://search.maven.org/#search|ga|1|a%3A%22maven-ant-tasks%22

注: 詳細については、 http: //maven.apache.org/ant-tasks/を参照してください。

于 2012-10-16T07:26:37.777 に答える
3

使用する場合:

xmlns:artifact="antlib:org.apache.maven.artifact.ant"

typedef がない場合、そのライブラリは ANTS CLasspath にある必要があります。ANT_HOME/libまたは${user.home}/.ant/libまたは で指定された任意のフォルダです-lib。それが機能する理由ant -lib libです。

他のantlibのようにtypedefに変更すれば動きます。

<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
           uri="antlib:org.apache.maven.artifact.ant"
           classpathref="libs.folder" />
于 2012-07-18T09:56:33.903 に答える