【问题标题】:How do you configure aspectj maven plugin to use Java 7?如何配置 aspectj maven 插件以使用 Java 7?
【发布时间】:2012-07-03 09:53:47
【问题描述】:

aspectj 插件使用 Java 7 的适当配置/版本/插件版本是什么?

我正在尝试从 Java 6 升级到 Java 7,而 aspectj 编译器似乎没有编译 Java 7。我在 aspectj 插件和 maven 的插件配置中将 java 源和目标版本指定为 1.7编译器插件。我在我的代码中引入了 Java7 特定的语法,添加了一些语言特性,例如 switch 中的字符串和菱形运算符。在构建期间,我从 aspectj 收到有关 Java7 语法的错误。出现问题的第一个迹象是:

[INFO] --- aspectj-maven-plugin:1.4:compile (default) @ site ---
[ERROR] Cannot switch on a value of type String. Only int values or enum constants are permitted
[ERROR] Cannot instantiate the type HashSet<?>
[ERROR] Syntax error on token "<", ? expected after this token

如果我从 aspectj maven 插件中删除执行部分,使其无法运行,并使用 mvn clean install,则新代码可以正常编译。所以我认为这是与aspectj配置错误的东西。这是我的插件配置:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java-version>1.7</java-version>
    <org.aspectj-version>1.6.11</org.aspectj-version>
</properties>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjrt</artifactId>
                    <version>${org.aspectj-version}</version>
                </dependency>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>${org.aspectj-version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <complianceLevel>${java-version}</complianceLevel>
                <encoding>${project.build.sourceEncoding}</encoding>
                <outxml>true</outxml>
                <source>${java-version}</source>
                <target>${java-version}</target>
            </configuration>
        </plugin>

aspectjrt 也被定义为插件部分之外的依赖项

<dependencies>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>
<dependencies>

【问题讨论】:

    标签: maven plugins aspectj java-7


    【解决方案1】:

    我从 1.6.11 更新到 1.7.0,自从我提出这个问题后,它就已经发布了。我不再有任何 aspectj/Java1.7 问题,这样就解决了这个问题。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2017-04-20
    相关资源
    最近更新 更多