语法错误,注释仅在源级别为5.0时才可用 - Maven中的AspectJ

时间:2011-09-09 11:53:38

标签: java annotations aspectj

我正在尝试在maven项目中使用aspectj-maven-plugin。在编译时,我得到:

Syntax error, annotations are only available if source level is 5.0
Syntax error, annotations are only available if source level is 5.0
Syntax error, annotations are only available if source level is 5.0

然而,我在我的pom.xml中设置了以下内容:

<project.build.source>1.6</project.build.source>
<project.build.target>1.6</project.build.target>

我有一些依赖:

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.6.11</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <version>1.4</version>
    </dependency>

如何解决此问题?感谢。

解决方案

我在我的pom.xml中添加了以下内容,现在它可以正常工作:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>test-compile</goal>
                    </goals>
                    <configuration>
                        <source>${project.build.source}</source>  <- Addition
                        <target>${project.build.target}</target>  <- Addition
                    </configuration>
                </execution>
           </executions>
       </plugin>

3 个答案:

答案 0 :(得分:7)

您可以明确设置aspectj插件的source参数。文档here

答案 1 :(得分:5)

我能够通过在我的pom中添加以下内容来解决这个问题:

<properties>
<project.build.java.target>1.6</project.build.java.target>
</properties>

能够从this帖子找到这个。

答案 2 :(得分:4)

检查此page,我在该示例中看到“complianceLevel”配置属性;设置为1.5或1.6可能会有效(因为它们至少有1.4,我猜这是默认值)。