我在Mac 10.9.5上使用Maven 3.2.3并将其用于我的编译器插件......
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-proc:none</compilerArgument>
<fork>true</fork>
<!-- <compilerId>eclipse</compilerId>-->
</configuration>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
我有我的surefire-plugin配置...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<reuseForks>true</reuseForks>
<argLine>-Xmx2048m -XX:MaxPermSize=512M -XX:-UseSplitVerifier ${argLine}</argLine>
<skipTests>${skipAllTests}</skipTests>
</configuration>
</plugin>
然而,在运行&#34; mvn clean install&#34;我收到了这个警告......
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0
什么是Java 8等效的&#34; UseSplitVerifier&#34;?
答案 0 :(得分:8)
没有等价物。请注意,配置中的选项为-UseSplitVerifier
(请注意前置减号),因此选项 not 使用SplitVerifier但从Java 8开始,SplitVerifier是必需的。
SplitVerifier与Java 6一起引入,当时是可选的,并且成为Java 7的默认选项。但是对于Java 7,仍然支持该选项,因此如果字节码处理工具不兼容,它可能会被关闭。
这是为了提供一个宽限期,在这个宽限期内,这些工具可以更新为与相关的StackMapFrame
字节码属性兼容。那个宽限期现在结束了。
如果你遇到的唯一问题是警告,换句话说,你没有遇到兼容性问题,你可以删除该选项。否则,您必须更新有问题的工具/库。
答案 1 :(得分:1)
你应该停止使用-XX:-UseSplitVerifier。无论如何,Java 8不支持它。 并将您的maven-compiler-plugin升级到3.2。这将解决你的字节码验证问题。