在 maven ant 运行 javac 的插件执行中未拾取的 ant 类



我有一个蚂蚁项目,我正在尝试通过maven ant运行插件运行它。我可以使用 ant 成功运行构建,即使在使用 ant 运行插件时,我在编译包含导入到 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 jar(直接运行或通过 ant run 插件运行),所以我猜测在第一种情况下,ant 库以某种方式隐式包含在 javac 类路径中。非常感谢任何克服此问题的建议。

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

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

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

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.7</version>
</plugin>

相关内容

  • 没有找到相关文章

最新更新