Все мои тесты junit проходили в eclipse, но при запуске из консоли они, похоже, выдают ClassNotFoundException для класса AJ RiskLogAspect.aj. Я могу убедиться, что в eclipse это правильно ткачество и обеспечивает необходимую функциональность.
Я попытался добавить зависимости в свой проект, чтобы убедиться, что все правильно.
Я начал добавлять аспектj-maven-plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
<phase>process-sources</phase>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<encoding>UTF8</encoding>
<source>1.6</source>
<target>1.6</target>
<aspects>
<includes>
<include>com.idna.riskprofile.RiskLogAspect</include>
</includes>
</aspects>
</configuration>
</execution>
</executions>
</plugin>
Затем я добавил следующие зависимости
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.7</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.7</version>
</dependency>
Есть идеи, что не так?
Я использую maven 2.0.9, а также jdK 1.6 update 21
После изменения некоторых настроек, которые я заметил в консоли, я получаю следующее "[Xlint: adviceDidNotMatch]" Похоже, что он выбирает мой класс, но неправильно применяет pointcut.
Для целевой компиляции он находит файл AJ и правильно применяет рекомендации, для целей компиляции тестов он говорит Xlint: adviceDidNotMatch и выдает исключение для класса, найденного для половины тестов junit.
С консоли:
[INFO] [aspectj:compile {execution: default}]
[INFO] Join point 'method-execution(java.lang.String com.idna.riskprofile.impl.RiskProfileEntryPointImpl.execute(com.idna.riskprofile.domain.RiskProfileRequest))' in Type 'com.idna.riskprofile.impl.RiskProfileEntryPointImpl' (RiskProfileEntryPointImpl.java:35) advised by around advice from 'com.idna.riskprofile.logging.aspects.RiskLogAspect' (RiskLogAspect.aj:35)
[INFO] [aspectj:test-compile {execution: default}]
[WARNING] advice defined in com.idna.riskprofile.logging.aspects.RiskLogAspect has not been applied [Xlint:adviceDidNotMatch]
[INFO] [resources:resources]
Обновлено: похоже, что неуместные рекомендации по поводу цели тестовой компиляции были не причиной неудачных тестов на консоли, а другой проблемой конфигурации Spring.