当前位置: 首页 > 面试题库 >

如何使用Java 7和Maven启用Aspectj编译时编织

单淳
2023-03-14
问题内容

我有一个当前可与Java 6一起使用并编译时间编织的项目。我们使用以下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>

我尝试了各种配置,但是不能使其与Java 7一起使用。如果有人可以共享工作的pom或导致它,那将是很好的。


问题答案:

升级到Aspectjtools的1.7.0版后,它可以正常工作。另外,您需要将版本参数传递给编译器-1.7(使用该target参数会导致问题)。如果有人需要更多详细信息,请留下评论,我将添加更多特定于配置的信息。
您可以从此处获取一个工作示例: Spring,AspectJ和Maven示例
这是pom中的工作插件定义(compiler-version =“ 1.7”,aspectj.version =“ 1.7.0”)

<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>


 类似资料:
  • 我的pom文件列表 但是,在时,我得到 当我运行时,我看到实际上我使用的是Java6 它可以在哪里定义?我有源(d)my.zshrc多次。

  • 我试图用maven在heroku simple servlet上上传。在本地,我的servlet工作正常,但当我使用: 我得到“构建失败”的错误消息: 我在系统变量中将所有内容都更改为Java 1.7,maven运行的是Java 1.7,javac版本是1.7? 我在这里错过了什么吗? 编辑:我的JAVA_HOME和错误截图

  • 我一定是个反Maven的人,因为每次我尝试使用它时,我都会花很多时间挣扎,然后就放弃了。我的最新情况是,我不能编译Java7源代码,尽管有1.7的JDK。 以下是的输出。有趣的是,当我使用Maven 3.0.4时,错误消息是而不是使用Maven 3.2.1的 正如您所看到的,我使用的是Maven的最新版本,Maven使用的是Java1.7。 我认为脚本正在添加,因为我的环境变量没有指定它。 我正在

  • 我有Java8SDK和运行时,以及一个只使用Java7个功能的项目。我想知道我是否可以设置intellij来构建一个Java-7级的jar,从命令行肯定可以做到这一点? 到目前为止,我已经尝试过简单地将项目语言级别设置为7作为实验,但这显然是不够的,也不是我真正需要的。 我在SO上也看到过这个问题:"Intellij IDEA使用java7编译器编译,当我已经将其配置为使用Java6",但我的项目

  • 是否有可能拥有一个Scala Maven项目,并在Scala类中编译时编织AspectJ方面? 我已经能够使加载时编织工作,但到目前为止没有成功的编译时。

  • 我在我的JRXML中使用我的应用程序A的一些对象,如下所示: 使用iReport,我已经将我的目标/类目录添加到类路径,每个想法都可以。 现在,当我尝试用maven(mvn clean install)编译JRXML时,我遇到了一个错误: 当我的构建失败时,maven已经编译了目标/类中的所有类。我不明白为什么maven找不到EnumOne、EnumTwo和Test2DTO,而它却能找到另一个。