2010-11-17 4 views
10

У меня есть проект с несколькими модулями maven, один из которых содержит мои аспекты. Как я могу использовать аспекты и переплетать несколько модулей maven? Документация для плагина AspectJ Maven немного редка и не смогла найти много примеров.AspectJ плетение модулей maven

Я попытался поместить плагин aspectj в родительский pom, но он, похоже, не применяет советы для модулей под ним.

Я также попробовал указать свойство aspectDirectory, но он, похоже, не повлиял. Возможно, я сделал это неправильно?

ответ

17

Я думаю, что механизм объясняется довольно хорошо на этой странице:

Using Aspect Libraries

В основном:

Вы помещаете все аспекты в одном проекте, скомпилировать его с помощью AspectJ-Maven-плагин, добавить зависимость к этому проекту все проекты, которые вы хотите, чтобы ткать и добавить этот конфиг для тканых проектов:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>aspectj-maven-plugin</artifactId> 
    <version>1.3</version> 
    <configuration> 
     <aspectLibraries> 
      <aspectLibrary> 
       <groupId>your.aspects.groupId</groupId> 
       <artifactId>your.aspects.artifactId</artifactId> 
      </aspectLibrary> 
     </aspectLibraries> 
    </configuration> 
    <executions> 
     <execution> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

и- gly part: вам нужно добавить эту конфигурацию в каждый проект, поэтому одна из возможностей - использовать родительский pom. К сожалению, она должна была бы быть на том же уровне, что и проект аспекты (потому что ПОМ не может определить зависимость для проекта под ним), так что вам придется что-то вроде этого

------- root -------- 
/     \ 
aspects -------- java-parent ---- 
     / / |  |  \ 
     java1 java2 java3 java4 java5 

или даже как это

 ------- root --------- 
    /      \ 
aspect-parent   --- java-parent --- 
/  \   / |  |  \ 
aspects1 aspects2  java1 java2 java3 java4 

Вы хотите добавить как <dependency> и конфигурации плагина AspectJ к пОМ из Java-родительского проекта

Смежные вопросы