6

Sto usando Maven 3.2.3 su Mac 10.9.5 e avere questo per il mio plug-in compilatore ...Java 8: Qual è l'equivalente di "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> 

ho questo per la mia configurazione infallibile-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> 

Tuttavia, dopo l'esecuzione di "mvn clean install" ricevo questo avvertimento ...

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

Qual è l'equivalente Java 8 di "UseSplitVerifier"?

+1

Non c'è alcun equivalente; basta rimuovere quell'opzione. – Holger

risposta

6

Non c'è alcun equivalente. Si noti che l'opzione nella configurazione è -UseSplitVerifier (si noti il ​​segno meno), quindi l'opzione dice non per utilizzare SplitVerifier ma a partire da Java 8, SplitVerifier è obbligatorio.

La SplitVerifier è stato introdotto con Java 6, essendo facoltativa in quel momento ed è diventato il default con Java 7. Ma con Java 7, l'opzione è stata ancora sostenuta, in modo che potesse ottenere disattivato nel caso in cui uno strumento di elaborazione bytecode è incompatibile .

L'obiettivo era fornire un periodo di prova durante il quale questi strumenti possono essere aggiornati per essere compatibili con l'attributo bytecode StackMapFrame corrispondente. Quel periodo di grazia è finito.

Se l'unica cosa che si incontra è quell'avvertenza, in altre parole, non si verificano problemi di compatibilità, è sufficiente rimuovere tale opzione. Altrimenti, devi aggiornare gli strumenti/le librerie problematiche.

1

Dovresti smettere di usare -XX: -UseSplitVerifier. Ad ogni modo, non è supportato da Java 8. E aggiorna il tuo plug-compilatore maven a 3.2. Ciò risolverà i tuoi problemi con la verifica bytecode.

Problemi correlati