0

我正在研究一个多模块项目的模块之一。我正在开发一个 java 插件来pre-integration-test在 maven 中分阶段部署我的 gigaspace 应用程序。

构建发生在 Teamcity 上,当前JAVA_HOME指向构建整个存储库的 Java 6。现在,在分阶段部署应用程序时pre-integration-test,它需要 Java 7,因为它使用了一些在 Java 7 中编译的第三方库。

有什么办法可以以某种方式使用 Java 7 分阶段部署我的应用程序pre-integration-test,但使用 Java 6 进行编译?

4

2 回答 2

0

如果目的是生成 JAVA 6 字节码,那么您可以在包括集成测试的整个生命周期中使用 JAVA 7(JAVA_HOME 指向 JAVA 7),但将 maven-compiler-plugin 配置为 1.6 版本:

<properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
</properties>
于 2016-07-21T09:52:01.927 回答
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>

我自己没试过。另外,请在此处查看另一个有点类似的问题及其答案mvn help:effective-pom运行以查看发生了什么也很有用。

于 2016-02-25T18:05:40.517 回答