저는 표준 Maven 전쟁 레이아웃으로 webapp로 컴파일되는 단일 maven 프로젝트를 보유하고 있습니다. 동일한 프로젝트에 애스펙트를 추가하려고하지만 Tomcat에 전쟁으로 배포 할 때 애스펙트가 트리거되지 않습니다. 나는 단지로 프로젝트를 배포하는 경우, 측면에 킥. 여기전쟁 프로젝트에서 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로 정의됩니다.
무엇이 잘못 될 수 있습니까?
전쟁을 만들려면 mvn clean install
을하고 전쟁을 webapps 디렉토리로 이동하십시오. Jar를 만들 때 어셈블리 플러그인을 Main Class와 함께 사용합니다. HTTP 서비스를 시작하지 않지만 내 코드에서 다른 프로세스를 시작합니다.
Tomcat에 배포 할 때 어떻게합니까? 'mvn install'을 실행하고'target/.. war'을 webapp에 복사합니까? 그리고 당신은 어떻게 "프로젝트를 jar로 배포"합니까? –
은 질문 자체에서 귀하의 질문에 답변했습니다. – sheki
일반적인 제안 :'mvn -X clean install'을 실행하여 전쟁 중 일어나는 일을 확인하십시오. 'aspectj-maven-plugin'이하고있는 것을 보아라. (아마도 여기에 상대적인 Maven 로그를 게시한다.) –