私は標準のMavenの戦争レイアウトでwebappにコンパイルする単一のmavenプロジェクトを持っています。 私は同じプロジェクトにアスペクトを追加しようとしていますが、Tomcatの戦争としてデプロイされたときにそのアスペクトがトリガーされません。私はjarファイルとしてプロジェクトを展開する場合、側面がで蹴る。WarプロジェクトでAspectJとMavenを使用するにはどうすればいいですか?
ここに私のpom.xmlが
`` `
<groupId>in.sheki</groupId>
<artifactId>abc-service</artifactId>
<packaging>war</packaging>
<name>abc-service</name>
<properties>
<aspectj.version>1.6.12</aspectj.version>
</properties>
<build>
<finalName>abc-service</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<complianceLevel>1.6</complianceLevel>
</configuration>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<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>
....
</dependencies>
</project>
` ``
側面どのように見えるかです@Aspectアノテーションを持つJavaClassとしてプロジェクトのパッケージの1つに定義されています。
私は間違っている可能性がありますか?
戦争を作成するには、私はmvn clean install
を実行し、warをwebappsディレクトリに移動します。 Jarを作成するには、メインクラスでアセンブリプラグインを使用しますが、これはHTTPサービスを開始せず、自分のコードで他のプロセスを開始します。
Tomcatにデプロイするとき、どうやってこれを行うのですか? 'mvn install'を実行して、' target/.. war'をwebappsにコピーしますか?そして、どのように「プロジェクトをjarとして展開するのですか?質問自体に –
があなたの質問に答えました。 – sheki
一般的な提案として: 'mvn -X clean install'を実行して、戦争の構築中に何が起こるかを見てください。 'aspectj-maven-plugin'が何をしているのかを見てください(多分相対Mavenログをここに投稿してください)。 –