我有一个蚂蚁项目,我正在尝试通过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>