首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止Java开发人员使用新的语言特性?

如何防止Java开发人员使用新的语言特性?
EN

Stack Overflow用户
提问于 2015-06-23 06:56:22
回答 3查看 135关注 0票数 1

因为Java 7是EOL,所以升级到Java8是必要的。但是,不允许开发人员使用任何新的语言特性是有业务原因的。特别被禁止的特征是lambdas。

如何强制使用Java 7特性?构建系统基于Jenkins,还有可用的SonarQube。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-23 09:06:14

其他的答案部分是正确的。编译器确实必须配置为-source 1.7,以检查是否使用Java8LANG特性。但是它并不阻止使用新的Java8API。一个解决方案是使用动物嗅探器项目来验证是否只使用了Java7API。

下面是maven项目的配置示例:

代码语言:javascript
复制
 <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>

票数 4
EN

Stack Overflow用户

发布于 2015-06-23 07:08:10

确保它们没有使用任何JDK 8特性并破坏向后兼容性的最佳方法是编译1.7的源代码

例如

代码语言:javascript
复制
javac -source 1.7

祝你好运

票数 2
EN

Stack Overflow用户

发布于 2015-06-23 07:05:04

如果使用eclipse或idea,即使使用jdk8,也可以将编译器级别设置为1.7。然后ide会错误地删除任何新特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30995833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档