Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable aspectj compile time weaving with Java 7 and maven

Tags:

I have a project which currently works with java 6 and compile time weaving. We use the following pom to enable spring aspects and our own ones:

<plugin>   <groupId>org.codehaus.mojo</groupId>   <artifactId>aspectj-maven-plugin</artifactId>   <version>1.4</version>       <configuration>         <showWeaveInfo>true</showWeaveInfo>         <source>1.6</source>         <target>1.6</target>         <Xlint>ignore</Xlint>         <complianceLevel>1.6</complianceLevel>         <encoding>UTF-8</encoding>         <verbose>false</verbose>         <aspectLibraries>           <aspectLibrary>              <groupId>org.springframework</groupId>              <artifactId>spring-aspects</artifactId>           </aspectLibrary>         </aspectLibraries>       </configuration>       <executions>         <execution>           <goals>             <goal>compile</goal>             <goal>test-compile</goal>           </goals>         </execution>       </executions>     </plugin> 

I've tried various configuration but can't make it work with java 7. If someone could share a working pom or leads it would be great.

like image 254
Avner Levy Avatar asked Jan 03 '12 20:01

Avner Levy


1 Answers

After moving to version 1.7.0 of the aspectjtools it works fine. In addition you need to pass the compiler the version parameter as -1.7 (using the target parameter caused problems). If someone needs more details leave a comment and I'll add more configuration specific information.
You can take a working example from here: Spring, AspectJ and Maven example
Here is the working plugin definition from the pom (compiler-version="1.7", aspectj.version="1.7.0")

<plugin>     <groupId>org.codehaus.mojo</groupId>     <artifactId>aspectj-maven-plugin</artifactId>     <version>1.4</version>     <configuration>         <showWeaveInfo>true</showWeaveInfo>         <source>${compiler.version}</source>         <target>${compiler.version}</target>         <Xlint>ignore</Xlint>         <complianceLevel>${compiler.version}</complianceLevel>         <encoding>UTF-8</encoding>         <verbose>false</verbose>         <aspectLibraries>             <aspectLibrary>                 <groupId>org.springframework</groupId>                 <artifactId>spring-aspects</artifactId>             </aspectLibrary>         </aspectLibraries>     </configuration>     <executions>         <execution>             <goals>                 <goal>compile</goal>                 <goal>test-compile</goal>             </goals>         </execution>     </executions>     <dependencies>         <dependency>             <groupId>org.aspectj</groupId>             <artifactId>aspectjrt</artifactId>             <version>${aspectj.version}</version>         </dependency>         <dependency>             <groupId>org.aspectj</groupId>             <artifactId>aspectjtools</artifactId>             <version>${aspectj.version}</version>         </dependency>     </dependencies> </plugin> 
like image 191
Avner Levy Avatar answered Sep 19 '22 22:09

Avner Levy