我的maven项目有几个模块:服务器、Web等。
我想在Java 6上构建除了服务器模块之外的所有模块。对于服务器模块,我想使用Java 7进行编译。
下面是我的pom.xml文件,但我认为如果将其修改为1.7,则所有模块都将使用Java 7进行编译。另外,maven是否使用JAVA_HOME环境变量来确定要使用哪个Java版本?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<memmax>2048m</memmax>
</configuration>
</plugin>
编辑: 另外,下面的输出结果
maven --version
是否表示maven正在使用1.7来编译我的Java代码?
vagrant@dev:~/bin/apache-tomcat-7.0.29/bin$ mvn --version
Apache Maven 3.0.4 (r1232337; 2012-01-17 08:44:56+0000)
Maven home: /home/vagrant/bin/apache-maven-3.0.4
Java version: 1.7.0_07, vendor: Oracle Corporation
Java home: /home/vagrant/bin/jdk1.7.0_07/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-23-generic", arch: "amd64", family: "unix"
感谢,Kevin
--release
标志(请参见https://dev59.com/RVgQ5IYBdhLWcg3wORZJ#43103038/)?就配置而言,它要容易得多,速度更快(无需为每个模块分叉进程),适用于Java 7+。如果需要在目标JVM上运行测试或编译古老的Java(6或更早版本),则仍然可以使用工具链。 - Dmitry Timofeev