2011-09-09 6 views
13

Sto tentando di utilizzare aspectj-maven-plugin in un progetto maven. Al momento della compilazione, ottengo:Errore di sintassi, le annotazioni sono disponibili solo se il livello di origine è 5.0 - AspectJ in Maven

Syntax error, annotations are only available if source level is 5.0 
Syntax error, annotations are only available if source level is 5.0 
Syntax error, annotations are only available if source level is 5.0 

Eppure, ho impostato il seguente nel mio pom.xml:

<project.build.source>1.6</project.build.source> 
<project.build.target>1.6</project.build.target> 

Ho alcune dipendenze a:

<dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>1.6.11</version> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>aspectj-maven-plugin</artifactId> 
     <version>1.4</version> 
    </dependency> 

Come risolvo questa edizione? Grazie.

Soluzione

ho aggiunto il seguente nel mio pom.xml e adesso funziona:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>aspectj-maven-plugin</artifactId> 
      <version>1.4</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compile</goal> 
         <goal>test-compile</goal> 
        </goals> 
        <configuration> 
         <source>${project.build.source}</source> <- Addition 
         <target>${project.build.target}</target> <- Addition 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

@Paul No, non l'ho fatto. Ora funziona. Se crei una soluzione, la approverò. Grazie. – JVerstry

+0

Certo, lo farò. Saluti. –

+0

Inoltre, avevo bisogno anche dell'aggiunta dell'argomento di configurazione complianceLevel. Vedi di più qui: http://stackoverflow.com/questions/21548548/adding-aspectj-to-pom-xml-changed-java-version-with-maven-why – JoshC13

risposta

7

È possibile impostare in modo esplicito il parametro sorgente del plugin aspectj. Doc. here.

3

Scegli questa page e vedo una proprietà di configurazione "complianceLevel" in questo esempio; impostando questo su 1.5 o 1.6 potrebbe fare il trucco (dal momento che hanno un minimo di 1.4, suppongo che sia il default).

4

sono stato in grado di risolvere questo problema aggiungendo il seguente al mio pom:

<properties> 
<project.build.java.target>1.6</project.build.java.target> 
</properties> 

è stato in grado di trovare questo da this posta.

+0

Questo è l'unico che ha funzionato per me. – CorayThan

Problemi correlati