Den*_*ich 8 java lint maven java-8 retrolambda
背景:
我们有maven基于Java的项目,它以JRE 1.7为目标,但源代码使用lambdas,因此我们用它retrolambda来转换Java 8源代码Java 7.当我们需要stream,function.*,Optional等时,我们也使用StreamSupport backport库.
用法retrolambda包括将项目的源语言和目标语言级别配置为1.8.
如果对java8类或方法(比如不依赖一切工作正常java.util.stream.*,java.util.Optional或方法引入java8类似Collection.forEach).如果有这样的用法然后构建传递,但它在运行时失败,当在Java 8的JVM下运行时.
题:
我的目标是在存在此类依赖项的情况下使构建失败.有没有办法Java 8在构建时检测新类/方法的依赖?
我想到了两个可能的选择,但我不确定它们中的任何一个是否可行:
lint4j)规则.不确定是否可以使用检测对类/方法的依赖性lint您可以使用Animal Sniffer Maven插件.它允许您检查您的代码是否仅使用来自指定基线的API(称为"签名").在您的情况下,您将使用org.codehaus.mojo.signature:java17:1.0签名.
正如其他人所指出的那样,您也可以设置引导类路径,但是a)需要设置JDK 7并且b)使构建更复杂,因为您需要指向JDK 7安装.根据我的经验,动物嗅探器更容易使用.
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |