升级至Java 11后AspectJ Maven Plugin无法编译项目求助
Java 11升级后AspectJ编译错误解决方案
问题根源
Java 9及以上版本彻底移除了tools.jar,它的内容已整合进JDK核心模块中。你的构建报错是因为pom中仍在引用这个不存在的jar,或是AspectJ插件版本未适配Java 11。
具体修复步骤
移除对
com.sun:tools:jar的显式依赖
检查父pom中是否存在类似以下的依赖配置,直接删除这段内容:<dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>${java.version}</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency>升级AspectJ相关组件版本
旧版本AspectJ不支持Java 11,需将插件和依赖升级到兼容版本:- 更新
aspectj-maven-plugin至1.12+(推荐1.14.0),并配置Java 11编译参数:<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.14.0</version> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <configuration> <source>11</source> <target>11</target> <complianceLevel>11</complianceLevel> </configuration> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>1.9.9.1</version> </dependency> </dependencies> </plugin> - 同步升级
aspectjrt和aspectjweaver依赖到1.9.x版本:<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.9.9.1</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.9.1</version> </dependency>
- 更新
验证Maven使用的JDK版本
执行mvn -version命令,确认输出的Java版本为Amazon Corretto 11,避免Maven混用旧版JDK。
内容的提问来源于stack exchange,提问作者dynamo
相关产品推荐
相关产品推荐

