2011-09-29 10 views
30

Zaimportowałem istniejący projekt Maven do Eclipse IDE. zmodyfikowałem trochę kodu w nim, że zestawiane pomyślnie, używam Java 1.6 jako kompilator i gdy próbuję uruchomić Maven czystej instalacji -XMaven: błąd: generics nie są obsługiwane w -source 1.3, używam 1.6

Jego daje następujący błąd

nie mógł zanalizować komunikat o błędzie: (użyj -source 5 lub wyżej, aby włączyć generyczne) D: \ bayer \ util \ src \ main \ java \ com \ tata \ bayer \ util \ BrokerageCalendar.java: 179: error: generics nie są obsługiwane w - źródło 1.3

private static Hashtable<String, Boolean> nyseHolidays = new Hashtable<String, Boolean>(); 
         ^

could not parse error message: (use -source 5 or higher to enable generics) 
D:\bayer\util\src\main\java\com\tata\bayer\util\APIHttpXmlClient.java:27: error: generics are not supported in -source 1.3 
         Class<? extends APIResponse> responseClass) { 
         ^

Proszę zasugerować wszelkie pomysły, jak zrobić reso Zrób to?

+0

Którą wersję Mavena używasz i czy poprawnie skonfigurowałeś JAVA_HOME – khmarbaise

Odpowiedz

42

Czy stwierdzenie, że chcesz użyć Java 1.6 w pom.xml projektu ?:

<build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
         <compilerArgument></compilerArgument> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
+0

To nie jest nazwa ostateczna. – khmarbaise

+0

@AndreiBodnarescu dla Ciebie. Nazwa finalName jest nieistotna dla tego problemu. –

+1

zrobiliśmy ten sposób 1,6 org.apache.maven.plugins Maven-compiler-plugin 1,6 1,6 1,6 1.6 Jesteśmy przy Java 1.7 i maven jak Apache Maven 2.2.1 (r801777; 2009-08-07 00: 46: 01 + 0530) podstawowy Java c: \ Oprogramowanie \ Java \ jdk1.7.0 \ jre –

5

Musisz skonfigurować Maven Compiler Plugin.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
    <source>1.6</source> 
    <target>1.6</target> 
    </configuration> 
</plugin> 
+0

warto zauważyć, że domyślny jest 1.5 dla wtyczki kompilatora> = 2.3. Maven 2.2.1 domyślnie używa wtyczki kompilatora 2.0.2, ale możesz ją przesłonić zgodnie z opisem. –

+2

(Nawiasem mówiąc, w wersji przykładowej jest literówka, ale nie można wprowadzać 1-znakowych zmian na stackoverflow :) –

26

Konfigurowanie wtyczki Maven Compiler rozwiąże problem. Okazuje się, że problem został spowodowany przez pakiet Maven3 w repozytorium Ubuntu. Alternatywną poprawką jest pobranie Maven 3 ze strony Apache, która używa bardziej aktualnej wtyczki Compiler.

Chciałem wiedzieć, dlaczego tak się dzieje, gdy w dokumentacji podano domyślne źródło Java 1.5. Aby zobaczyć, co jest za pomocą mvn dla kompilatora użycia wtyczek:

mvn help:effective-pom 

My Maven Compiler 2.0.2 Plugin był chociaż używałem Maven 3.0.4 z pakietów Ubuntu. Po uruchomieniu tego samego polecenia przy użyciu Maven 3.0.4 z Apache mam wtyczkę w wersji 2.3.2, która domyślnie jest zgodna z Java 1.5 zgodnie z oczekiwaniami.

+6

+1 dla Ubuntu odpowiedź – yochannah

+0

To był problem dla mnie też, podczas korzystania z pakietu Maven dostarczane z Ubuntu. Instalacja z Apache zgodnie z sugestią i problem został rozwiązany. –

1

wolałbym to:

<properties> 
    <maven.compiler.source>1.5</maven.compiler.source> 
    <maven.compiler.target>1.5</maven.compiler.target> 
    ... 
3

inny sposób, że nie wymaga modyfikowania POM, aby określić źródło i cel w linii komend:

pamiętać, że ten powinien należy unikać generalnie, ponieważ nie można zagwarantować powtarzalności w ten sposób.

Powiązane problemy