6

Ich verwende Maven 3.2.3 auf Mac 10.9.5 und dieses Plugin für mein Compiler ...Java 8: Was entspricht "UseSplitVerifier"?

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

Ich habe dies für meine todsichere-Plugin-Konfiguration ...

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

jedoch beim Fahren „mvn saubere Installation“ ich habe diese Warnung erhalten ...

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

Was die Java 8 Äquivalent von „UseSplitVerifier“ ist?

+1

Es gibt keine Entsprechung; Entferne einfach diese Option. – Holger

Antwort

6

Es gibt keine Entsprechung. Beachten Sie, dass die Option in Ihrer Konfiguration -UseSplitVerifier ist (beachten Sie das vorangestellte Minuszeichen). Daher lautet die Option nicht, um den SplitVerifier zu verwenden, aber ab Java 8 ist der SplitVerifier obligatorisch. Der SplitVerifier wurde mit Java 6 eingeführt, war zu dieser Zeit optional und wurde mit Java 7 zum Standard. Aber mit Java 7 wurde die Option weiterhin unterstützt, sodass sie ausgeschaltet werden konnte, falls ein Bytecode-Verarbeitungstool nicht kompatibel war .

Dies sollte eine Gnadenfrist bieten, in der diese Tools aktualisiert werden können, um mit dem zugehörigen Bytecode-Attribut StackMapFrame kompatibel zu sein. Diese Gnadenfrist ist jetzt vorbei.

Wenn Sie nur auf diese Warnung stoßen, mit anderen Worten, dass keine Kompatibilitätsprobleme auftreten, können Sie diese Option einfach entfernen. Andernfalls müssen Sie die problematischen Werkzeuge/Bibliotheken aktualisieren.

1

Sie sollten die Verwendung von -XX: -UseSplitVerifier beenden. Anyway, es wird nicht von Java 8 unterstützt. Und aktualisieren Sie Ihr Maven-Compiler-Plugin auf 3.2. Das wird Ihre Probleme mit der Bytecode-Verifikation lösen.