2015-06-18 52 views
5

के साथ मेवेन त्रुटि मैवेन और जावा 8 (jdk1.8.0_45) के साथ त्रुटि प्राप्त करना। यह समस्या जावा 7.जावा 8

MCVE साथ नहीं होती है

एक नमूना Maven परियोजना बनाएँ। उदाहरण के लिए: जाओ निम्नलिखित

mvn clean compile 

आउटपुट

:

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 परियोजना संकलित बनाएं त्रुटि:

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

मैवेन 3.0.4 और 3.3.3 दोनों के साथ इसका प्रयास किया। यदि यह सीधे Javac कमांड का उपयोग करके App.java के खिलाफ संकलित करता है तो यह समस्या मौजूद नहीं है।

+0

जावा 1.8.0_45 और मेवेन 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

धन्यवाद कि काम किया! स्टैक ओवरफ्लो के रूप में उत्तर स्वीकार नहीं कर सकता है हम 10 मिनट इंतजार करते हैं! बाद में स्वीकार करेंगे। – codedabbler

4

एक अन्य समाधान इन गुणों जोड़ रहा है:

<properties> 
    <maven.compiler.target>1.8</maven.compiler.target> 
    <maven.compiler.source>1.8</maven.compiler.source> 
</properties> 
अपने pom.xml करने के लिए

, और प्लग इन स्वचालित रूप से इन लेने होंगे।