したがって、他の答えも有効ですが、このアプローチの意味のいくつかをもう少し詳しく説明したいと思いました。
私が使用するセットアップは、これの基本的なレベルです:-
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<dependencies>
<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>
<configuration>
<outxmlfile>META-INF/aop.xml</outxmlfile>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>1.7</source>
<target>1.7</target>
<forceAjcCompile>true</forceAjcCompile>
</configuration>
</plugin>
さて、依存関係に関するいくつかの追加情報:-
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${dep.spring}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${dep.spring}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
ウィービングに使用される永続化 API を見逃していると思います。
編集:春のhttps://jira.springsource.org/browse/SPR-6819バグに関連しています。それが、永続化 API が必要な理由のようです。
また、ide でクラスが織り込まれていない場合に織り込むための Maven ジョブを作成することも役立ちます (これは私にとってよく起こります)。
aspectj:compile
最後に、クラスの単体テストを行う場合は、このフェーズの後にクラスを織り込むと便利です。prepare-package
段階で織ります。これを追加したい場合は
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
あなたのプラグインに。
このアプローチを IDE でうまく機能させるのは難しい場合があるため、これが役立つことを願っています。