2015-06-18 19 views
5

Otrzymanie błędu z Mavenem i Javą 8 (jdk1.8.0_45). Ten problem nie występuje w Javie 7.Błąd Maven z Javą 8

MCVE

Utwórz projekt próbka maven. Na przykład:

mvn archetype:create -DgroupId=testinovke -DartifactId=testinvoke 

utworzyć następującą zawartość generowana App.java plik

package testinovke; 

import java.lang.invoke.MethodHandle; 
import java.lang.invoke.MethodHandles; 
import java.lang.invoke.MethodType; 

public class App { 

    public static MethodHandles.Lookup lookup; 

    public static class Check { 
     public void primitive(final int i){ 
     } 
     public void wrapper(final Integer i){ 
     } 
    } 


    public static void main(String[] args) throws Throwable { 
     Check check = new Check(); 

     MethodType type = MethodType.methodType(void.class, int.class); 

     MethodHandle mh = lookup.findVirtual(Check.class, "primitive", type); 
     mh.invoke(); 
    } 
} 

Kompilacja projektu maven:

mvn clean compile 

Output

pojawia się następujący błąd:

testinvoke/src/main/java/testinovke/App.java:[25,18] method invoked with incorrect number of arguments; expected 0, found 1 

Próbowałem z Maven 3.0.4 i 3.3.3. Ten problem nie istnieje, jeśli bezpośrednio kompiluję z App.java przy użyciu polecenia Javac.

+0

Działa tutaj przy użyciu języka Java 1.8.0_45 i Maven 3.2.3. –

Odpowiedz

5

dodawania wtyczki konfiguracji dla kompilatora:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <verbose>true</verbose> 
       <fork>true</fork> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
+0

Dzięki, że zadziałało! Nie można zaakceptować odpowiedzi, ponieważ stackoverflow powoduje, że czekamy 10 minut !. Przyjmiemy później. – codedabbler

4

Innym rozwiązaniem jest dodanie tych właściwości:

<properties> 
    <maven.compiler.target>1.8</maven.compiler.target> 
    <maven.compiler.source>1.8</maven.compiler.source> 
</properties> 

do pom.xml oraz wtyczek odbierze je automatycznie.