У меня проблема с использованием maven'овского плагина для aspectj. Цель: скомпилировать с помощью команды mvn compile классы с вшитыми аспектами. Для этого в файле pom.xml описываю следующую зависимость и плагин:
| Код | <dependencies> ... <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.6.7</version> </dependency> ... </dependencies> <build> <pluginManagement> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.3</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> <showWeaveInfo>true</showWeaveInfo> <verbose>true</verbose> </configuration> </plugin> ... </pluginManagement> </build>
|
После чего говорю maven compile. Однако, при таком раскладе аспекты не пришиваются к основным классам. Тем не менее запуск с явным указанием целей (mvn aspectj:compile aspectj:test-compile) даёт желаемый результат.
Почитав http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html я решил, что плагин при подключении не добавляет свои цели в фазы test-compile и compile lifecycl'a "default", и решил задать их явно:
| Код | <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.3</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> <showWeaveInfo>true</showWeaveInfo> <verbose>true</verbose> </configuration> <executions> <execution> <id>aspectj-compile</id> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> <execution> <id>aspectj:test-compile</id> <phase>test-compile</phase> <goals> <goal>test-compile</goal> </goals> </execution> </executions> </plugin>
|
Однако ситуацию это не изменило. Я чего-то не понимаю в логике работы maven'a или это какой-то баг? |