maven-compiler-plugin を使用すると、プロジェクトでサポートされている jdk を指定できます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<fork>true</fork>
<!-- <executable>path-to-javac</executable> -->
<compilerVersion>1.5</compilerVersion>
</configuration>
</plugin>
しかし、別のバージョンの JDK を使用すると、ビルドに失敗する可能性はありますか?
1.5 の一部ではないjavax.xml.bind.annotation.adaptersを使用するコードがいくつかありますが、このパッケージを含む JDK6 でビルドするため、ビルドは成功します。
Eclipse 内で警告が表示されますが、プロジェクトのビルド時に使用される JDK を明示的に変更せずにビルドを失敗させるとよいでしょう。
私はこれを試しました:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>1.5</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
しかし、それは何もしません。また、プラグイン管理を入れようとしました:
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>enforce</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
効果もありません。