Вам необходимо указать зависимость вашего аспектного проекта в виде библиотеки аспектов в вашей конфигурации aspectj-maven-plugin в вашем pom.xml.Предположим, у вашего аспектного модуля есть groupid: artifactid groupid:aspect-module
.Ваш pom.xml
должен выглядеть примерно так:
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>groupid</groupId>
<artifactId>aspect-module</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.9</version>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>groupid</groupId>
<artifactId>aspect-module</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Обратите внимание, что я отключаю maven-compiler-plugin
, потому что они, как правило, перезаписывают работу друг друга с помощью aspectj-maven-plugin
, и компилятор aspectj должен бытьвозможность компилировать обычные файлы Java и сплетать их в один шаг в любом случае, поэтому использование maven-compiler-plugin является излишним.Если вы используете Eclipse + AJDT, эта конфигурация maven будет намного лучше отражать то, что происходит в вашей IDE во время разработки.