ユニットテストでJava 11構文を使用したいが、私のメインコードはJava 8でコンパイルする必要がある8個設置。
Maven-compiler-pluginでこれを行う方法はありますか? JenkinsサーバーにJava 11がインストールされています。
私は、プロダクションコードでJava 11特定の機能を誤って使用する可能性があるというリスクを受け入れます。
Mavenでは、コンパイルとtestCompileの目標は異なります。また、MavenにはtestCompileのパラメーター(testTargetおよびtestSource)さえあります。そう:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
</configuration>
</plugin>
Mkrakhinの回答の少し簡潔なバージョン source 、 target 、 testSource および testTarget を設定できます。
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.testSource>11</maven.compiler.testSource>
<maven.compiler.testTarget>11</maven.compiler.testTarget>
</properties>
</project>