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.
Działa tutaj przy użyciu języka Java 1.8.0_45 i Maven 3.2.3. –