2016-02-25 57 views
0

我正在開發多模塊項目的模塊之一。我正在開發一個java插件,用於在maven的pre-integration-test階段部署我的gigaspace應用程序。maven build中的多個java版本

構建發生在Teamcity上,當前的JAVA_HOME指向構建整個存儲庫的Java 6。現在,在pre-integration-test階段部署應用程序時,它需要Java 7,因爲它使用了哪些Java 7中

整理了一些第三方庫有什麼辦法,我可以以某種方式在pre-integration-test階段使用Java 7部署了應用程序,但使用Java 6進行編譯?

+0

這可能是不可能的。 –

+2

可以將項目分成兩個模塊作爲解決方案嗎? – slartidan

+0

@slartidan ....這將如何工作?可以說我是否將其拆分並將所有整合測試移動到單獨的模塊中,並且可以在此項目的整合前階段部署應用程序,那麼現在該如何進行? –

回答

0

看來這不是直截了當的。如果你看的是它和命名pre-integration-test生命週期階段有關,那麼也許你可以控制它的執行配置的插件目標:

<plugin> 
      ... 
      <execution>                
      <id>...</id>            
      <phase>pre-integration-test</phase>            
      <goals>                 
       <goal>...</goal>            
      </goals>                 
      <configuration>               
       <source>1.7</source>             
       <target>1.7</target>             
      </configuration>               
      </execution>                
     </executions> 
    </plugin> 

我還沒有嘗試過自己。另外,看另一個有點類似question and its answer here。運行mvn help:effective-pom以查看正在發生的事情也很有用。

+0

我自己已經創建了插件,我沒有任何源或目標配置 –

+0

哦。那麼也許你可以在你的mojo配置中使用[參數](https://maven.apache.org/guides/mini/guide-configuring-plugins.html)並分配適當的Java Runtime? (你可以使用這些配置選項的任何名稱,不一定是'source'和'target') –

0

如果目的是生成JAVA 6字節碼,那麼您可以在包括集成測試的整個生命週期中使用JAVA 7(JAVA_HOME指向JAVA 7),但配置版本爲1.6的maven-compiler-plugin:

<properties> 
    <maven.compiler.source>1.6</maven.compiler.source> 
    <maven.compiler.target>1.6</maven.compiler.target> 
</properties>