【问题标题】:Java 8: What is the equivalent of "UseSplitVerifier"?Java 8:“UseSplitVerifier”的等价物是什么?
【发布时间】:2023-03-04 17:11:02
【问题描述】:

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

但是,在运行“mvn clean install”时,我收到了这个警告......

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0

Java 8 中的“UseSplitVerifier”是什么?

【问题讨论】:

    标签: java-8 warnings maven-surefire-plugin maven-compiler-plugin


    【解决方案1】:

    没有等价物。请注意,您的配置中的选项是 -UseSplitVerifier(注意前面的减号),因此选项说 not 使用 SplitVerifier,但从 Java 8 开始,SplitVerifier 是强制性的。

    SplitVerifier 是随 Java 6 引入的,当时是可选的,并成为 Java 7 的默认设置。但在 Java 7 中,该选项仍受支持,因此可以在字节码处理工具不兼容的情况下将其关闭。

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

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

    【讨论】:

      【解决方案2】:

      您应该停止使用 -XX:-UseSplitVerifier。无论如何,Java 8 不支持它。 并将您的 maven-compiler-plugin 升级到 3.2 。这将解决您的字节码验证问题。

      【讨论】:

        猜你喜欢
        • 2016-07-26
        • 2014-03-20
        • 2016-04-10
        • 2011-10-13
        • 2012-03-05
        • 2010-09-23
        • 2018-08-07
        • 2017-06-13
        • 1970-01-01
        相关资源
        最近更新 更多