Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java7和maven实现aspectj编译时编织_Java_Maven_Aspectj - Fatal编程技术网

如何使用Java7和maven实现aspectj编译时编织

如何使用Java7和maven实现aspectj编译时编织,java,maven,aspectj,Java,Maven,Aspectj,我有一个项目,目前使用Java6和编译时编织。 我们使用以下pom启用spring特性和我们自己的特性: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.4</version> <configuration>

我有一个项目,目前使用Java6和编译时编织。 我们使用以下pom启用spring特性和我们自己的特性:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>aspectj-maven-plugin</artifactId>
  <version>1.4</version>
      <configuration>
        <showWeaveInfo>true</showWeaveInfo>
        <source>1.6</source>
        <target>1.6</target>
        <Xlint>ignore</Xlint>
        <complianceLevel>1.6</complianceLevel>
        <encoding>UTF-8</encoding>
        <verbose>false</verbose>
        <aspectLibraries>
          <aspectLibrary>
             <groupId>org.springframework</groupId>
             <artifactId>spring-aspects</artifactId>
          </aspectLibrary>
        </aspectLibraries>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>test-compile</goal>
          </goals>
        </execution>
      </executions>
    </plugin>

org.codehaus.mojo
aspectj maven插件
1.4
真的
1.6
1.6
忽视
1.6
UTF-8
假的
org.springframework
春季方面
编译
测试编译
我尝试过各种配置,但无法使其与Java7一起工作。
如果有人可以共享一个正在工作的pom或Lead,那就太好了。

在迁移到aspectjtools的1.7.0版之后,它工作得很好。此外,您需要将版本参数作为
-1.7
传递给编译器(使用
target
参数会导致问题)。如果有人需要更多详细信息,请留下评论,我将添加更多特定于配置的信息。
您可以从这里举一个工作示例:
以下是pom中的工作插件定义(编译器版本=“1.7”,aspectj.version=“1.7.0”)


org.codehaus.mojo
aspectj maven插件
1.4
真的
${compiler.version}
${compiler.version}
忽视
${compiler.version}
UTF-8
假的
org.springframework
春季方面
编译
测试编译
org.aspectj
aspectjrt
${aspectj.version}
org.aspectj
aspectjtools
${aspectj.version}

您可以发布pom.xml吗?在1.7版本,当我执行一个干净的构建时,我得到:org.aspectj.weaver.BCException:格式错误的org.aspectj.weaver.Declare属性(长度:45)org.aspectj.weaver.BCException:错误的类型签名。但如果我第二次调用mvn compile,它会生成,但后来的增强会给出一个“在分支目标处需要一个stackmap框架”。我还在研究这个问题。我刚转到最新发布的aspectj 1.7.0和java 1.7,还遇到了一个错误,即“在分支目标处需要一个stackmap帧”。您曾经解决过这个问题吗?您是否指定了正确的aspectj和编译器版本?我每天都用,效果很好。您需要pom的哪一部分(我将添加缺少的部分)?谢谢。你的插件配置对我帮助很大。在我的例子中,它在aspectj 1.6.12版上运行,没有任何问题。
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <showWeaveInfo>true</showWeaveInfo>
        <source>${compiler.version}</source>
        <target>${compiler.version}</target>
        <Xlint>ignore</Xlint>
        <complianceLevel>${compiler.version}</complianceLevel>
        <encoding>UTF-8</encoding>
        <verbose>false</verbose>
        <aspectLibraries>
            <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </aspectLibrary>
        </aspectLibraries>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${aspectj.version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${aspectj.version}</version>
        </dependency>
    </dependencies>
</plugin>