AspectJ + Junit + Maven - pointcut распознается в тестах, но генерируется исключение NoSuchMethodError: aspectOf ()

Я следил почти за всеми вопросами JUnit + Maven + AspectJ здесь, и даже я уверен, что все настроено правильно, я не могу проверить это.

У меня есть модуль Maven только с одним аспектом:

@Aspect
public class AssertionAspect {

    @Pointcut("execution(@org.junit.Test * *())")
    public void testMethodEntryPoint() {}

    @Before("testMethodEntryPoint()")
    public void executeBeforeEnteringTestMethod() {
        System.out.println("EXECUTE ACTION BEFORE ENTERING TEST METHOD");
    }

    @After("testMethodEntryPoint()")
    public void executeAfterEnteringTestMethod() {
        System.out.println("EXECUTE ACTION AFTER ENTERING TEST METHOD");
    }
}

Очень просто. Все, что я хочу сделать, это сделать что-то до и после каждого выполнения любого метода тестирования в моем тестовом проекте, который помечен.@Test

Теперь я используюaspectj-maven-plugin в моем как это:


  
    
      org.codehaus.mojo
      aspectj-maven-plugin
      1.4
      
        
          
            my.package
            with-aspects
          
        
        1.6
        1.6
      
      
        
          
            test-compile
          
          
            true
          
        
      
    
  

1) у меня нетcompile цель в потому что у меня нет занятий вsrc/main/java (тот'это правда, и это нормально, я знаю, что я делаю)

2) у меня есть


    org.aspectj
    aspectjrt
    1.7.3


    org.aspectj
    aspectjweaver
    1.7.3

в моем раздел. Ничего более в отношении аспекта.

3) Я уверен, что мои классы тестирования распознаются aspectj, потому что я вижу, что точки соединения были рекомендованы. Я вижу:

Join point 'method-execution(xyz)' in Type 'blabla' 
(AppTestCase.java:124) advised by before advice from 
'blabla' (my-aspects jar.jar!AssertionAspect.class(from AssertionAspect.java))

То же самое касается и после совета.

4) когда я попробовал версию 1.7.3 вместо 1.6.11, это сообщение появилось у меня во время обработки точек соединения:expected 1.6.11 found 1.7.3, Я думаю, это сообщение отaspectj-maven-plugin версии 1.4, я не знаю, когда выйдет 1.5, чтобы избавиться от этого. Какие версии совместимы?

5) Мой "код" выглядит так :)

@RunWith(JUnit4.class)
public class TestClass() {

    @Test
    public void test01(){
    }
}

6) У меня 1.6.0_39 Oracle Java компилятор, я компилирую все с 1.6 (цель, источник .. все)

Итак, аспекты признаны, применены, я собираюсь выполнить тесты, какmvn clean test но все, что я получаю, это:

java.lang.NoSuchMethodError: 
my/aspect/AssertionAspect.aspectOf()Lmy/aspect/AssertionAspect;

и довольно длинная трассировка стека.

у меня нетлюбой Понять, что может быть не так, правда.

Ответы на вопрос(1)

Ваш ответ на вопрос