we're using the aspectj-maven-plugin for building several large production grade J2EE systems. Lately, the development on that plugin doesn't seem to be overly active. The last relase has been last winter, and there are some serious problems with "AspectLib" and "WeaveDependencies", which got reported several times (even with attached bugfixes), without any responses from upstream.
But anyway, the basic functionality is working, and this plugin supports lots of configuration needed in real world projects.
Pascal Thivent showed in his (very good) response above how to configure the plugin with a special dependency section. You can use this trick also to configure the actual AspectJ version used for compilation, as the version used by default by this plugin is somewhat dated....
<project xmlns=....
<properties>
<aspectjVer>1.6.9</aspectjVer>
....
....
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
....
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectjVer}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectjVer}</version>
</dependency>
</dependencies>
<configuration>
....
</build>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectjVer}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId><!-- only needed if you use Spring-AOP -->
<version>${aspectjVer}</version>
</dependency>
....
....
Note the fact that the plugin has an classpath environment which is independent from your project's classpath. Thus we have to add the AspectJ-Runtime explicitly to the project dependencies.