2015-06-18 2 views
5

Ошибка при работе с Maven и Java 8 (jdk1.8.0_45). Эта проблема не возникает с Java 7.Ошибка Maven с Java 8

MCVE

Создание образца проекта Maven. Например:

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

Создайте следующее содержимое в сгенерированный файл App.java

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(); 
    } 
} 

Компиляция проекта Maven:

mvn clean compile 

Выход

Получить следующую ошибка:

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

Пробовал его как с Maven 3.0.4, так и с 3.3.3. Эта проблема не существует, если я непосредственно компилирую приложение App.java с помощью команды Javac.

+0

Работает с использованием Java 1.8.0_45 и Maven 3.2.3. –

ответ

5

Добавить плагин конфигурации для компилятора:

 <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

Спасибо, что сработало! Не могу принять ответ, поскольку stackoverflow заставляет ждать 10 минут !. Примут позже. – codedabbler

4

Другим решением является добавление этих свойств:

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

к вашему pom.xml и плагины подберет их автоматически.

Смежные вопросы