2016-03-02 30 views
5

Sto usando cercando di usare AspectJ con Intellij. Ho abilitato i plugin Aspectj in intellij, Spring AOP/@Aspectj e Support Aspectj e ho impostato il compilatore ajc in Setting -> java compiler -> ajc.IDEA non è riuscito a trovare il compilatore AspectJ .jar tra le dipendenze del plugin

Viene visualizzato questo messaggio di errore.

AspectJ Support 
IDEA was unable to find AspectJ compiler .jar among plugin dependencies. 
Please fix <aspectj-maven-plugin> in '/home/manoj/stuff/moghul/Git_backend/dropwizard/pom.xml' and re-import a project,or set compiler manually via Settings | Compiler | Java Compiler. 

Ecco il mio pom.xml

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard.metrics</groupId> 
     <artifactId>metrics-core</artifactId> 
     <version>3.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard.metrics</groupId> 
     <artifactId>metrics-graphite</artifactId> 
     <version>3.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard.metrics</groupId> 
     <artifactId>metrics-annotation</artifactId> 
     <version>3.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>io.astefanutti.metrics.aspectj</groupId> 
     <artifactId>metrics-aspectj</artifactId> 
     <version>1.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>1.6.9</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjtools</artifactId> 
     <version>1.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjweaver</artifactId> 
     <version>1.8.8</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>aspectj-maven-plugin</artifactId> 
     <version>1.8</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>aspectj-maven-plugin</artifactId> 
     <configuration> 
      <aspectLibraries> 
      <aspectLibrary> 
       <groupId>io.astefanutti.metrics.aspectj</groupId> 
       <artifactId>metrics-aspectj</artifactId> 
      </aspectLibrary> 
      </aspectLibraries> 
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
+0

per quanto mi ricordo IntelliJ rileverà aspectJ quando trova aspectjtools nel pom. Forse provare la versione 1.6.9? E poi reimportare il progetto. Vorrei anche sostenere che una dipendenza da aspectj-maven-plugin è errata. I plug-in Maven non hanno alcuna dipendenza da utilizzare in questo modo, è una soluzione valida per la sezione plug-in. – wemu

risposta

1

Forse ha senso utilizzare anche una versione plug-in. Non riesco a vederne alcuno nel tuo POM. O ne definisci uno in una sezione pluginManagement? Basta risolvere il tuo POM e IntelliJ IDEA funzionerà.

A proposito:

  • Si utilizza una versione molto vecchia AspectJ. Perché? Usa quello attuale, ad oggi 1.8.8.
  • L'unica dipendenza che è necessario dichiarare per la tessitura in fase di compilazione di AspectJ è aspectjrt. Se vuoi che il plugin AspectJ Maven aggiorni la sua versione di AspectJ, definisci una dipendenza del plugin sulla versione desiderata di aspectjtools, non una dipendenza del modulo.

Sentiti libero di porre domande di follow-up se non capisci completamente questa risposta.