2010-11-17 16 views
10

que tienen un proyecto que tiene múltiples módulos Maven, uno de los cuales, contiene mis aspectos. ¿Cómo puedo tomar los aspectos y tejer varios módulos maven? La documentación del complemento AspectJ Maven es un poco escasa y no ha podido encontrar muchos ejemplos.módulos tejer maven AspectJ

He intentado poner el complemento aspectj en el pom principal, pero no parece aplicar el consejo para los módulos debajo de él.

También probé especificando la propiedad aspectsDirectory pero no parecen tener ningún efecto. Quizás lo hice mal?

Respuesta

17

creo que el mecanismo se explica bastante bien en esta página:

Using Aspect Libraries

Básicamente:

Se pone todos sus aspectos en un mismo proyecto, compilar usando el aspectj-maven-plugin, agregar una dependencia de este proyecto para todos los proyectos que desea tejer y también añadir esta configuración para los proyectos tejidas:

<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> 

La U gly parte es: necesita agregar esta configuración a cada proyecto, por lo que una posibilidad sería usar un pom padre. Por desgracia, tendría que estar en el mismo nivel que el proyecto aspectos (debido a un pom no puede definir una dependencia a un proyecto por debajo de ella), por lo que tendría algo como esto

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

o incluso como este

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

Se podría añadir tanto los <dependency> y la configuración del plugin aspectj a la pom del proyecto java-matriz

Cuestiones relacionadas