嗨,
我试图在我的蚂蚁构建中包括一个Maven构建。当我仅使用涉及的蚂蚁任务时,我使用Maven Ant插件时会很好。
我的问题是我的Maven代码包含1.6依赖性.jar文件,但是我的ANT脚本为1.5,因此如果以1.6运行,将失败。因此,我必须创建一个过程,该过程切换JVM以在ANT脚本中运行我的Maven目标。
我尝试过:将插件添加到我的主POM的构建部分,该插件自定义编译器:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<executable>"c:Program Files (x86)Javajdk1.6.0_45binjavac.exe"</executable>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
这不起作用,因为它说它在-s上存在问题。我已经检查过,这是Java 1.6 Javac参数,在1.5中不存在!因此,它正在创建Javac调用1.6,然后使用1.5 Javac运行它。另外,我宁愿只编辑蚂蚁脚本来执行此操作。
我还尝试了&lt;属性>和&&&&&&&&&&&&&&essproperty>(在java呼叫中)和&lt; arg>设置路径和java_home变量的每一种组合,但它们似乎并不按照我的方式工作他们去。这是不可能的吗?我什至将&lt; java>标签的JVM属性设置为对抗1.6 Java,但Maven呼吁进行构建的Javac似乎仍然存在问题。
预先感谢。
这是Maven站点的部分(稍微抛光),以方便起见:
<macrodef name="maven">
<attribute name="options" default="" />
<attribute name="goal" />
<attribute name="basedir" />
<attribute name="resultproperty" default="maven.result" />
<element name="args" implicit="true" optional="true" />
<sequential>
<java classname="org.codehaus.classworlds.Launcher" fork="true" dir="@{basedir}" resultproperty="@{resultproperty}">
<jvmarg value="-Xmx512m"/>
<classpath>
<fileset dir="${maven.home}/boot"><include name="*.jar" /></fileset>
<fileset dir="${maven.home}/lib"><include name="*.jar" /></fileset>
</classpath>
<sysproperty key="classworlds.conf" value="${maven.home}/bin/m2.conf" />
<sysproperty key="maven.home" value="${maven.home}" />
<arg line="--batch-mode @{options} @{goal}" />
</java>
</sequential>
</macrodef>
<target name="my_maven_target">
<maven basedir="${basedir}" options="${maven.opts}" goal="install" resultproperty="maven.build.result"/>
</target>
您应该尝试为此使用ant Exec任务。在这里查找以前的详细答案:在不同的JVM