当前位置: 首页 > 知识库问答 >
问题:

Mojo的AspectJ Maven插件与JDK9+一起工作吗?

淳于昊然
2023-03-14
[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.11:compile (default) on project AspectJDemo: Execution default of goal org.codehaus.mojo:aspectj-maven-plugin:1.11:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.11 or one of its dependencies could not be resolved: Could not find artifact com.sun:tools:jar:13.0.2 at specified path /usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home/../lib/tools.jar -> [Help 1]
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>/path/to/tools.jar</systemPath>
        </dependency>

但随后构建完全失败,就好像它完全停止识别Java一样。我遇到了许多错误,例如:

[ERROR] can't find critical required type java.lang.Object
        <unknown source file>:<no line information>

这是否意味着Mojo的AspectJ Maven插件不支持JDK9+?我很感激你能帮我解决这个问题。

共有1个答案

空佐
2023-03-14

这个插件自Java8以来就没有被维护过,但是有一个fork,其中有一个pull请求要在上游被接受。因为Mojohaus没有为该插件提供活动的维护器,而且Fork的开发人员还没有被授予访问权限来接管和推出上游版本,所以现在只需使用这个Fork:

<dependency>
    <groupId>com.nickwongdev</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.12.6</version>
</dependency>

我已经用了很长时间了,它是可靠的,至少工作到Java 13。即使是IntelliJ IDEA的最新版本也自动识别出它是Mojohaus版本的替代方案,因为这一过程已经花费了很长时间。

附注:不需要提供硬编码路径,只需使用替代插件即可。:-)

 类似资料: