使用 AspectJ/Spring 引导设置 Spring Tool Suite 4(缺少 m2e 连接器)
Setting up Spring Tool Suite 4 with AspectJ/Spring Boot (m2e connector missing)
我使用的是最新版本的 STS,目前是 4.11。我正在构建一个新项目并尝试让 AspectJ CTW 与 Spring Boot 一起工作。我有一些单元测试来检查@Async 方法调用的各个方面。有趣的是,单元测试通过 maven 全新安装通过,但通过 STS 构建时却没有。
我认为原因是 AJDT 插件或 AJDT 配置器插件不工作,因为我看到这个错误:
Plugin execution not covered by lifecycle configuration:
dev.aspectj:aspectj-maven-plugin:1.13.M3:compile
(execution: default, phase: compile)
我正在使用具有这些设置的最新 aspectj maven 插件。
<plugin>
<groupId>dev.aspectj</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.13.M3</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<complianceLevel>${maven.compiler.target}</complianceLevel>
<encoding>${project.build.sourceEncoding}</encoding>
<XnoInline>true</XnoInline>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
并且我尝试安装了这两个软件安装:
- http://download.eclipse.org/tools/ajdt/410/dev/update
- http://dist.springsource.org/release/AJDT/configurator/
设置此设置似乎总是很痛苦。有没有人设法用 Java 11 做到这一点?
AspectJ 开发工具 (AJDT)
我不使用 STS,但主要使用 IntelliJ IDEA,如果是 Eclipse,则为 Java 开发人员使用纯 Eclipse。前段时间准备了Eclipse 2021-03的AJDT新版本,2021-06貌似还在用,开发AspectJ 1.9.7.
尝试从 aspectj.dev 下载最新的快照:
https://aspectj.dev/maven/org/eclipse/ajdt/org.eclipse.ajdt.releng/2.2.4-SNAPSHOT/
抱歉,我无法为您提供常规的 Eclipse 更新站点,但在为 AspectJ 做贡献时,我无法访问 Eclipse 基础结构。首席开发人员很忙,所以我自己的 Web 服务器是为您提供 AJDT 的最简单方法。 ZIP 存档的大小约为 15 MB。您可以按照 here 所述将其作为虚拟更新站点导入 Eclipse(滚动到“为 Eclipse 安装 AJDT(AspectJ 开发工具)IDE”)。
aspectj.dev
的 AspectJ Maven 插件
一些小消息:昨天发布了AspectJ Maven 1.13版本。与 1.13.M3 相比,它有一些改进,最显着的是 1.13
- 默认依赖AspectJ 1.9.8.M1(当然你也可以使用1.9.7,但是1.9.8.M1支持
--release N
编译开关),
- 将语言级别 17 识别为源、目标、合规级别和发布参数的有效参数,即它可以与最新的 AspectJ 1.9.8 快照一起使用,以便实验性地编译 Java 17-EA,
- 有编译器级别设置的优先规则,即如果设置了合规级别,则不需要源和目标(它们是相同的),如果设置了源和目标,则不再需要指定合规级别.在你必须设置所有三个之前,IMO 总是一个错误。此外,如果您将发布设置为交叉编译,则所有源、目标和合规级别都将被忽略。
可以在插件的 GitHub site.
上找到更多信息
更新: 我找到了一个 m2e connector for AJDT,由 Miika Vesti 维护,供他私人使用。起初它对 dev.aspectj
groupID 不起作用,因为他忘记将更新推送到 Eclipse 更新站点,但我与他取得了联系,现在它起作用了。请参阅项目的自述文件以获取更多信息。您可以使用 Eclipse 2020-12 的现有更新站点来安装也适用于 Eclipse 2021-06 的连接器。
连接器需要做更多工作才能正确导入所有 AspectJ Maven 设置,例如它在我停用 Maven Compiler Plugin 的一些项目中不起作用,因为它当前依赖于它处于活动状态并且 source/target 编译器级别之类的东西在那里配置。只有这样,它才会正确导入源和目标目录以及依赖项——最突出的是 Aspectj 运行时库——正确并生成可用的 Eclipse 项目。我正在尝试与 Miika 合作,以便将来使连接器更加自给自足。
我使用的是最新版本的 STS,目前是 4.11。我正在构建一个新项目并尝试让 AspectJ CTW 与 Spring Boot 一起工作。我有一些单元测试来检查@Async 方法调用的各个方面。有趣的是,单元测试通过 maven 全新安装通过,但通过 STS 构建时却没有。
我认为原因是 AJDT 插件或 AJDT 配置器插件不工作,因为我看到这个错误:
Plugin execution not covered by lifecycle configuration:
dev.aspectj:aspectj-maven-plugin:1.13.M3:compile
(execution: default, phase: compile)
我正在使用具有这些设置的最新 aspectj maven 插件。
<plugin>
<groupId>dev.aspectj</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.13.M3</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<complianceLevel>${maven.compiler.target}</complianceLevel>
<encoding>${project.build.sourceEncoding}</encoding>
<XnoInline>true</XnoInline>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
并且我尝试安装了这两个软件安装:
- http://download.eclipse.org/tools/ajdt/410/dev/update
- http://dist.springsource.org/release/AJDT/configurator/
设置此设置似乎总是很痛苦。有没有人设法用 Java 11 做到这一点?
AspectJ 开发工具 (AJDT)
我不使用 STS,但主要使用 IntelliJ IDEA,如果是 Eclipse,则为 Java 开发人员使用纯 Eclipse。前段时间准备了Eclipse 2021-03的AJDT新版本,2021-06貌似还在用,开发AspectJ 1.9.7.
尝试从 aspectj.dev 下载最新的快照: https://aspectj.dev/maven/org/eclipse/ajdt/org.eclipse.ajdt.releng/2.2.4-SNAPSHOT/
抱歉,我无法为您提供常规的 Eclipse 更新站点,但在为 AspectJ 做贡献时,我无法访问 Eclipse 基础结构。首席开发人员很忙,所以我自己的 Web 服务器是为您提供 AJDT 的最简单方法。 ZIP 存档的大小约为 15 MB。您可以按照 here 所述将其作为虚拟更新站点导入 Eclipse(滚动到“为 Eclipse 安装 AJDT(AspectJ 开发工具)IDE”)。
aspectj.dev
的 AspectJ Maven 插件一些小消息:昨天发布了AspectJ Maven 1.13版本。与 1.13.M3 相比,它有一些改进,最显着的是 1.13
- 默认依赖AspectJ 1.9.8.M1(当然你也可以使用1.9.7,但是1.9.8.M1支持
--release N
编译开关), - 将语言级别 17 识别为源、目标、合规级别和发布参数的有效参数,即它可以与最新的 AspectJ 1.9.8 快照一起使用,以便实验性地编译 Java 17-EA,
- 有编译器级别设置的优先规则,即如果设置了合规级别,则不需要源和目标(它们是相同的),如果设置了源和目标,则不再需要指定合规级别.在你必须设置所有三个之前,IMO 总是一个错误。此外,如果您将发布设置为交叉编译,则所有源、目标和合规级别都将被忽略。
可以在插件的 GitHub site.
上找到更多信息更新: 我找到了一个 m2e connector for AJDT,由 Miika Vesti 维护,供他私人使用。起初它对 dev.aspectj
groupID 不起作用,因为他忘记将更新推送到 Eclipse 更新站点,但我与他取得了联系,现在它起作用了。请参阅项目的自述文件以获取更多信息。您可以使用 Eclipse 2020-12 的现有更新站点来安装也适用于 Eclipse 2021-06 的连接器。
连接器需要做更多工作才能正确导入所有 AspectJ Maven 设置,例如它在我停用 Maven Compiler Plugin 的一些项目中不起作用,因为它当前依赖于它处于活动状态并且 source/target 编译器级别之类的东西在那里配置。只有这样,它才会正确导入源和目标目录以及依赖项——最突出的是 Aspectj 运行时库——正确并生成可用的 Eclipse 项目。我正在尝试与 Miika 合作,以便将来使连接器更加自给自足。