gpt4 book ai didi

java - 如何让 AspectJ 和 Maven 参与 War 项目?

转载 作者:行者123 更新时间:2023-12-01 15:36:57 26 4
gpt4 key购买 nike

我有一个 Maven 项目,它编译为 webapp,具有标准 Maven war 布局。我正在尝试向同一个项目添加方面,但当部署为 Tomcat 上的 war 时,这些方面不会被触发。如果我将项目部署为 jar,各个方面就会启动。

这是我的 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。

我可能做错了什么?

要创建 war ,我执行mvn clean install并将 war 移至webapps目录。为了创建 Jar,我使用带有主类的程序集插件,这不会启动 HTTP 服务,而是启动代码中的其他进程。

最佳答案

确保您有一个名为 war.bundle 的属性

正确

看看http://maven.apache.org/maven-1.x/plugins/aspectj/

如果您在没有 spring 的情况下运行,那么您可能需要 aop.xml,如中所述 http://ganeshghag.blogspot.in/2012/10/demystifying-aop-getting-started-with.html

关于java - 如何让 AspectJ 和 Maven 参与 War 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8716118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com