Java 8: что является эквивалентом UseSplitVerifier?

Я использую Maven 3.2.3 на Mac 10.9.5 и использую его для моего плагина компилятора...

                                    <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»?


person Dave A    schedule 22.07.2015    source источник


Ответы (2)


Нет эквивалента. Обратите внимание, что параметр в вашей конфигурации имеет значение -UseSplitVerifier (обратите внимание на минус в начале), поэтому параметр говорит не использовать SplitVerifier, но, начиная с Java 8, SplitVerifier является обязательным.

SplitVerifier появился в Java 6, в то время являлся необязательным и стал стандартным в Java 7. Но в Java 7 этот параметр по-прежнему поддерживался, поэтому его можно было отключить, если инструмент обработки байт-кода был несовместим.

Это должно было предоставить льготный период, в течение которого эти инструменты могут быть обновлены, чтобы быть совместимыми с соответствующим атрибутом байт-кода StackMapFrame. Сейчас этот льготный период закончился.

Если единственное, с чем вы столкнулись, это это предупреждение, другими словами, у вас нет проблем с совместимостью, вы можете просто удалить эту опцию. В противном случае вам придется обновить проблемные инструменты/библиотеки.

person Holger    schedule 22.07.2015

Вы должны прекратить использовать -XX:-UseSplitVerifier. В любом случае, это не поддерживается Java 8. И обновите свой плагин maven-compiler-plugin до версии 3.2. Это решит ваши проблемы с проверкой байт-кода.

person ABDAOUI Wahbi    schedule 02.02.2017