我一直在尝试使用这个http://maven.apache.org/ant-tasks/examples/write-pom.html作为参考使用writepom并且遇到了问题。我本质上只是试图测试它是否真的有效,所以POM文件非常简单。见下文。
<project name="CreatePOMStructure" basedir="./test" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<description>
Test Script
</description>
<path id="maven-ant-tasks.classpath" path="/usr/local/apache-ant-1.8.1/lib/maven-ant-tasks-2.1.1.jar" />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="antlib:org.apache.maven.artifact.ant"
classpathref="maven-ant-tasks.classpath" />
<artifact:pom id="maven-pom" groupId="com.cgi.wealth" artifactId="maven-pom-setup" version="1.0" name="maven-setup">
<license name="apache" url="http://www.apache.org"/>
<dependency groupId="junit" artifactId="junit" version="4.1" scope="test"/>
<dependency groupId="org.codehaus.plexus" artifactId="plexus-utils" version="1.5.5"/>
</artifact:pom>
<artifact:writepom pomRefId="mypom1" file="mypom1.xml"/>
</project>
当我尝试运行ant
时出现此错误[错误]无法执行目标 org.apache.maven.plugins:行家-antrun-插件:1.0:运行 (编译)项目maven-setup: 执行ant任务时出错: 发生以下错误 执行此行: /maven-setup/scripts/build.xml:11: java.lang.NoSuchMethodError: org.apache.maven.settings.RuntimeInfo(Lorg /阿帕奇/行家/设置/设置):V - &GT; [帮助1]
我不确定它是否相关,但在我添加typedef之前我遇到了这个错误:
[错误]无法执行目标 org.apache.maven.plugins:行家-antrun-插件:1.0:运行 (编译)项目maven-setup: 执行ant任务时出错: 发生以下错误 执行这个 行:/maven-setup/scripts/build.xml:9: 无法创建任务或类型类型: 的antlib:org.apache.maven.artifact.ant:POM
Ant无法找到任务或类 这项任务依赖于。
对不起最基本的问题,但我似乎无法解决这个问题。
[编辑]
这是我用来运行ant build的pom.xml文件。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cgi.wealth</groupId>
<artifactId>maven-setup</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>compile</id>
<phase>generate-sources</phase>
<configuration>
<tasks>
<ant antfile="${basedir}/scripts/build.xml" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-ant-tasks</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
</project>
项目问题仅在运行maven任务“mvn generate-sources”时存在(参见上面的pom.xml)。当我运行“ant”时,它就会成功构建。非常感谢任何见解。
答案 0 :(得分:2)
只要您将maven-ant-tasks-2.1.1.jar
放入build.xml
所在的同一目录中,此脚本就可以正常运行。
您遇到的错误告诉我路径可能不正确。
此外,最好不要设置项目的basedir
属性并使用默认(build.xml的当前目录)
最后但并非最不重要的是,artifact:writepom
pomRefId
应与id
的{{1}}匹配。
以下是剧本:
artifact:pom