我有一个 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 类路径中。非常感谢任何克服这个问题的建议。