Maven vs. AspectJ - Пример? - PullRequest
       18

Maven vs. AspectJ - Пример?

7 голосов
/ 19 июля 2009

Мой аспект прекрасно работает с Eclipse с плагином AspectJ, однако, если я пытаюсь использовать его с Maven, я получаю .... ничего.

Я пробовал это http://mojo.codehaus.org/aspectj-maven-plugin/includeExclude.html

Я добавляю loggin в своем аспекте и пытаюсь проверить его с помощью junit test, но когда я запускаю

mvn clean
mvn test

Я получаю ...

[INFO] [aspectj:compile {execution: default}]

Но я не вижу входа в тест

Если я делаю компиляцию в Eclipse, она работает find, но мне бы хотелось, чтобы она была независимой от IDE (чтобы я мог использовать ее с Hudson)

P.S. Я использую .aj файл для Aspect

Я пытался найти его в Google, но не могу найти ни одного рабочего примера.

1 Ответ

8 голосов
/ 19 июля 2009

Не видя POM, трудно сказать, одну вещь, которую нужно проверить, это то, что Maven ожидает, что ваши аспекты находятся в src / main / aspect, а не в src / main / java по умолчанию.

Также необходимо убедиться, что библиотека времени исполнения aspectj находится в вашем пути к классам (в Eclipse она включена в контейнер пути к классам AJDT.

Например (из документации к плагину):

<project>
    ...
    <dependencies>
        ...
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.2</version>
        </dependency>
        ...
    </dependencies>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal> <!-- use this goal to weave all your main classes -->
                            <goal>test-compile</goal> <!-- use this goal to weave all your test classes -->
                        </goals>
                    </execution>
               </executions>
           </plugin>
           ...
       </plugins>
   <build>
...
</project>

Если ни один из этих способов не работает, можете ли вы опубликовать содержимое pom? Это может помочь выявить проблему.

...