我有一个 Spring Roo多模块项目。我注意到在另一个项目中包含包含我的域模型的 jar/模块后,这些方面没有被编织,让我得到没有任何可用 getter/setter 的域类。
如何确保 Spring roo 生成的方面是由依赖项目编织的?
编辑:为了能够在另一个项目中使用 Roo 的方面,需要在依赖项目中包含 aspectJ 插件。请注意,这种方式不需要编译时加载。
我有一个 Spring Roo多模块项目。我注意到在另一个项目中包含包含我的域模型的 jar/模块后,这些方面没有被编织,让我得到没有任何可用 getter/setter 的域类。
如何确保 Spring roo 生成的方面是由依赖项目编织的?
编辑:为了能够在另一个项目中使用 Roo 的方面,需要在依赖项目中包含 aspectJ 插件。请注意,这种方式不需要编译时加载。
您需要在 pom 中包含 aspectj maven 插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<!-- NB: do not use 1.3 or 1.3.x due to MASPECTJ-90 and do not use 1.4
due to declare parents issue -->
<dependencies>
<!-- NB: You must use Maven 2.0.9 or above or these are ignored (see
MNG-2972) -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
<!-- NB: force aspect compile before normal compile, required for 1.3+
see: MASPECTJ-13, MASPECTJ-92 -->
<phase>process-sources</phase>
</execution>
</executions>
<configuration>
<outxml>true</outxml>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>