在Maven中,我有一个我想要构建的代码库,需要针对1.4 JVM。这在pom中很容易做到,但我有一个问题:这个代码库的测试使用1.5+构造。
是否有可能让Maven在1.6 JVM中编译/运行测试,但是将主代码库构建为目标1.4?
将源设置为1.6并将目标设置为1.4不起作用。 Maven / Java不允许这种组合。
答案 0 :(得分:1)
这是可行的,但您需要设置testCompile而不是compile的参数。您可以为用于编译的testCompile指定不同的目标/源组合。
因此,对于编译,您的目标是1.4,而testCompile 1.5或1.6。
此外,要运行单元测试,可以使用jvm参数指定要在surefire中使用的jvm。这将指向1.6 jvm。
答案 1 :(得分:1)
我已经做了一段时间了,但你想要的插件依赖是这样的:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<configuration>
<source>1.3</source>
<target>1.3</target>
</configuration>
</execution>
<execution>
<id>default-testCompile</id>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</execution>
</executions>
</plugin>
答案 2 :(得分:1)
我能够实现我想要的目标:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<testSource>1.6</testSource>
<testTarget>1.6</testTarget>
<target>1.4</target>
<source>1.4</source>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>