0

我有一个 ant 项目,我试图通过 maven ant run 插件运行。我可以使用 ant 成功运行构建,即使在使用 ant run 插件时在编译包含对 ant 类的导入的源时出现以下异常。

    [javac] xxxx/ant/src/org/apache/hadoop/hive/ant/GetVersionPref.java:21: package org.apache.tools.ant does not exist
[javac] import org.apache.tools.ant.AntClassLoader;
[javac]                            ^
[javac] xxxx/ant/src/org/apache/hadoop/hive/ant/GetVersionPref.java:22: package org.apache.tools.ant does not exist
[javac] import org.apache.tools.ant.BuildException;

这是 ant 构建文件的相关片段。

<property name="myclasspath" refid="classpath"/>
<!-- Emit the property to the ant console -->
<echo message="Classpath = ${myclasspath}"/>

<javac
 encoding="${build.encoding}"
 srcdir="${src.dir}"
 includes="**/*.java"
 destdir="${build.classes}"
 debug="${javac.debug}"
 deprecation="${javac.deprecation}"
 includeantruntime="true">
  <compilerarg line="${javac.args} ${javac.args.warnings}" />
  <classpath refid="classpath"/>
</javac>

打印的类路径在任何一种情况下都不包含 ant jars(直接运行或通过 ant run 插件运行),所以我猜测在第一种情况下,ant 库以某种方式隐式包含在 javac 类路径中。非常感谢任何克服这个问题的建议。

4

1 回答 1

1

antrun该插件的 1.6 版ant-nodeps:1.8.1根据其pom.xml使用。当我查看那个 jar 时,我没有看到错误消息中提到的类。

根据问题跟踪器中的发行说明,在插件版本 1.7中ant-nodeps:1.8.1已替换为。(参见http://jira.codehaus.org/browse/MANTRUN-162。)ant:1.8.2antrun

建议更新到 1.7 版本,看看是否有效。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.7</version>
</plugin>
于 2012-04-10T17:46:01.610 回答