java - 为 aspectj 运行 JDK8

标签 java maven maven-plugin aspectj

我正在尝试使用 JDK8 运行 aspectj-maven 插件。但它给出了类似的错误 “无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件中间接引用的”

关于如何解决的任何帮助,或者 aspectj-maven-plugin 是否支持 JDK8。我正在使用 1.6 版本的 aspectj--maven-plugin。

最佳答案

我必须达到同样的目的,我疯狂地试图弄清楚这个问题,幸运的是我可以解决它,在这里我给你我所做的:

要在 Java 8 中使用 aspectj-maven-plugin,您需要版本 aspectj-maven-plugin 1.7(注意 aspectj-maven-plugin 1.6 适用于 Java 7)。

因此,maven 插件配置需要:

        <!-- AspectJ configuration -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.7-SNAPSHOT</version>
            <configuration>
                <complianceLevel>1.8</complianceLevel>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

顺便说一句,需要的aspectJ jar是:

    <!-- Spring AOP + AspectJ -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>1.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.1</version>
    </dependency>

我遇到的最重要的事情是您需要将aspectj-maven-plugin 1.7 jar 手动安装到您的pom.xml 中,因为这个jar 还没有在maven 仓库中。

您可以从 Haus Jira 获取它(查看附件部分):

https://jira.codehaus.org/browse/MASPECTJ-131

顺便说一句,一旦您下载它并将其复制到您的存储库中,您需要在相应的文件中创建您的自己的 aspectj-maven-plugin-1.7-SNAPSHOT.pom 文件目录。您可以从 1.6 版复制它,但确保您修改以下内容:

 <version>1.7-SNAPSHOT</version>

 <properties>
    <aspectjVersion>1.8.1</aspectjVersion>
    <mavenVersion>2.2.1</mavenVersion>
    <changesPluginVersion>2.9</changesPluginVersion>
 </properties>

就到这里了,希望对你有帮助。

关于java - 为 aspectj 运行 JDK8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25155905/

相关文章:

java - 如何在 Java 中比较一个数组中的两个整数?

java - Maven 部署文件目标 : Why does the first execution interfere with the second one?

maven - 设置环境后,“gpg.exe”未被识别为内部或外部命令?

java - Jenkins java.lang.OutOfMemoryError : GC overhead limit exceeded

java - 从可能(或不)在类路径中的文件中获取 InputStream

java - SharedPreference 不包含广播接收器内的任何内容

java - 在 Java 中使用带有枚举的静态方法

java - Maven CXF 插件 API 不兼容

java - 我们如何在 Scala 中编写 maven2 插件?

java - maven:如何防止插件更新