因为 Java SE 7 是 EOL , 升级到 Java 8 是必要的。然而,出于商业原因不允许开发人员使用任何新的语言功能。特别禁止使用的功能是 lambda。
如何强制使用 Java 7 功能?构建系统基于 Jenkins,还有 SonarQube 可用。
最佳答案
其他答案部分正确。编译器确实必须配置 -source 1.7 以检查没有使用 Java 8 lang 特性。但它不会阻止使用新的 Java 8 API。一种解决方案是使用动物嗅探器项目来验证是否只使用了 Java 7 API。
这里是一个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>
关于java - 如何防止 Java 开发人员使用新的语言特性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30995833/