使用 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,是否有可能导致构建失败?
我有一些使用javax.xml.bind.annotation.adapters的代码,它不是 1.5 的一部分,但是由于我使用包含此包的 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>
但也没有效果。