2014-01-21 2 views
0

Привет,Ant задача сделать сборки Maven - но использовать другую версию Java, чем остальной Ant скрипт

Я пытаюсь включать Maven построить в моем Ant сборки. У меня все в порядке, когда я использую только связанную с Ant задачу, используя Maven Ant plugin.

Моя проблема заключается в том, что мой код Maven содержит 1,6-зависимый файл .jar, но мой скрипт Ant зависит от 1.5, поэтому он будет работать с 1.6. Поэтому мне нужно создать процесс, который переключает JVM для запуска моей цели Maven в моем скрипте Ant.

Я попытался: Добавление плагина в раздел сборки моего мастер-POM, который настраивает компилятор:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.5.1</version> 
    <configuration> 
     <executable>"c:\Program Files (x86)\Java\jdk1.6.0_45\bin\javac.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. Кроме того, я бы предпочел только редактировать скрипты Ant для этого.

Я также попытался каждой комбинации < собственности> и < sysproperty> (в вызове Java) и < аргумент>, чтобы установить PATH и JAVA_HOME переменные, но они, кажется, не работает так, как мне нужно их , Неужели это невозможно? Я даже установил атрибут JVM тега java> < против 1,6 java, но у него все еще есть проблемы с javac, который Maven вызывает для сборки.

Заранее спасибо.

Вот раздел с сайта 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> 

ответ

Смежные вопросы