因为Java 7是EOL,所以升级到Java8是必要的。但是,不允许开发人员使用任何新的语言特性是有业务原因的。特别被禁止的特征是lambdas。
如何强制使用Java 7特性?构建系统基于Jenkins,还有可用的SonarQube。
发布于 2015-06-23 09:06:14
其他的答案部分是正确的。编译器确实必须配置为-source 1.7,以检查是否使用Java8LANG特性。但是它并不阻止使用新的Java8API。一个解决方案是使用动物嗅探器项目来验证是否只使用了Java7API。
下面是maven项目的配置示例:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<executions>
<execution>
<id>enforce-java-api-compatibility</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature
</groupId>
<artifactId>java17</artifactId>
<version>1.0</version>
</signature>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
发布于 2015-06-23 07:08:10
确保它们没有使用任何JDK 8特性并破坏向后兼容性的最佳方法是编译1.7的源代码
例如
javac -source 1.7祝你好运
发布于 2015-06-23 07:05:04
如果使用eclipse或idea,即使使用jdk8,也可以将编译器级别设置为1.7。然后ide会错误地删除任何新特性。
https://stackoverflow.com/questions/30995833
复制相似问题