进行Maven构建的蚂蚁任务 - 但是使用与其余的ANT脚本的Java版本不同



嗨,

我试图在我的蚂蚁构建中包括一个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

中运行ANT任务

最新更新