Java 8 Java 8:什么是“的等价物?”;使用SplitVerifier";?

Java 8 Java 8:什么是“的等价物?”;使用SplitVerifier";?,java-8,warnings,maven-surefire-plugin,maven-compiler-plugin,Java 8,Warnings,Maven Surefire Plugin,Maven Compiler Plugin,我在Mac10.9.5上使用Maven 3.2.3,并将此作为我的编译器插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId&g

我在Mac10.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>

“UseSplitVerifier”的Java 8等价物是什么?

没有等价物。请注意,您的配置中的选项是
-UseSplitVerifier
(请注意前面的减号),因此该选项表示不使用SplitVerifier,但从Java 8开始,SplitVerifier是必需的

SplitVerifier是在Java6中引入的,在当时是可选的,在Java7中是默认的。但在Java7中,该选项仍然受支持,因此如果字节码处理工具不兼容,它可能会被关闭

这是为了提供一个宽限期,在该宽限期内,这些工具可以更新为与相关的
StackMapFrame
字节码属性兼容。这一宽限期现在已经结束


如果您遇到的唯一问题是该警告,换句话说,您没有遇到兼容性问题,那么您可以删除该选项。否则,您必须更新有问题的工具/库。

您应该停止使用-XX:-UseSplitVerifier。无论如何,Java8不支持它。 并将maven编译器插件升级到3.2。这将解决字节码验证的问题

                    <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>
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0