我的项目是使用 Maven 构建的。我很高兴用 Maven 构建它。现在,我需要用 Ant 构建它(我希望我不需要!!!)。我希望使用现有的 maven 依赖项——即,希望保留 pom 以进行依赖项管理。
所以,我写了这个任务:
<target name="java.compile">
<artifact:pom id="mypom" file="pom.xml" />
<artifact:dependencies filesetId="mypomdeps" pomRefId="mypom" />
<mkdir dir="build/classes" />
<javac
srcdir="${src.java.dir}"
destdir="build/classes"
includeantruntime="no">
<classpath>
<fileset refid="mypomdeps"/>
</classpath>
</javac>
</target>
但是,ant 编译输出抱怨 mypomdeps 指向的库(在 jar 中)丢失。
javac 无法看到我想要的类路径的原因是什么?
我是否正确使用了 artifact:dependencies 生成的 filesetId?
我的 ant 项目 defn:
我将 maven-ant-tasks-2.1.3.jar 放在项目 basedir 中。
<project name="why-does-the-sun-go-on-shining"
default="java.compile"
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<path id="maven-ant-tasks.classpath" path="maven-ant-tasks-2.1.3.jar" />
<typedef
resource="org/apache/maven/artifact/ant/antlib.xml"
uri="antlib:org.apache.maven.artifact.ant"
classpathref="maven-ant-tasks.classpath" />
进一步澄清
问题的要点是......如何在我的 Ant javac 任务中使用我的 pom 依赖项?