标签: aspectj-maven-plugin

Mvn clean安装tomcat7:部署失败,"常量池中的无效字节标记"

每次我在命令提示符下运行mvn clean install tomcat7:deploy时,都会失败.当我打开生成的日志文件时,它表示常量池中存在无效的字节标记.它指定的文件是java/lang/CharSequence.class.

这是日志:

---- AspectJ Properties ---
AspectJ Compiler 1.6.9.RC3 built on Wednesday Jun 30, 2010 at 15:46:30 GMT
---- Dump Properties ---
Dump file: ajcore.20141116.131622.157.txt
Dump reason: org.aspectj.apache.bcel.classfile.ClassFormatException
Dump on exception: true
Dump at exit condition: abort
---- Exception Information ---
org.aspectj.apache.bcel.classfile.ClassFormatException: File: 'java/lang    /CharSequence.class': Invalid byte tag in constant pool: 15
at org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:192)
at org.aspectj.apache.bcel.classfile.ClassParser.parse(ClassParser.java:131)
at org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(BcelWorld.java:412)
at org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:373)
at org.aspectj.weaver.World.resolveToReferenceType(World.java:452)
at org.aspectj.weaver.World.resolve(World.java:298)
at org.aspectj.weaver.World.resolve(World.java:211)
at org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.classTypeSignature2TypeX(BcelGenericSignatureToTypeXConverter.java:95)
at org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.classTypeSignature2TypeX(BcelGenericSignatureToTypeXConverter.java:41)
at org.aspectj.weaver.bcel.BcelObjectType.ensureGenericSignatureUnpacked(BcelObjectType.java:807)
at org.aspectj.weaver.bcel.BcelObjectType.getDeclaredInterfaces(BcelObjectType.java:255)
at org.aspectj.weaver.ReferenceType.getDeclaredInterfaces(ReferenceType.java:625)
at …
Run Code Online (Sandbox Code Playgroud)

maven tomcat7 aspectj-maven-plugin

21
推荐指数
1
解决办法
2万
查看次数

错误升级aspectj-maven-plugin v1.8

将maven插件从1.7升级到1.8会导致以下错误消息:

[错误] com.sun的'dependencies.dependency.systemPath':tools:jar必须指定绝对路径,但是$ {toolsjarSystemPath} @pom.xml/ash-domain line 1

aspectj-maven-plugin

19
推荐指数
3
解决办法
1万
查看次数

Spring + AspectJ使用aspectj-maven-plugin编织java 8

我正在将我的项目从java 7迁移到java 8,我遇到的问题与使用aspectj编织有关aspectj-maven-plugin.

根据Haus文档,我可以使用在Java 6和7上运行的这个插件成功配置编织.但问题是我还没有找到任何方法来使用(并找到)支持java 8的插件版本7.我在这里看到插件7增加了java 8支持,但找不到使用它的方法.

这是我需要的配置插件:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.7</version> <!-- AspectJ weaver plugin 7 is for java 8 (version 1.6 is for java 7) -->
          <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>
Run Code Online (Sandbox Code Playgroud)

我确认使用版本1.6的上述代码适用于Java 7,但没有运气试图使用1.7版.

你知道如何运行在Java 8上运行的spring + aspectj的weaver吗?

java spring aspectj java-8 aspectj-maven-plugin

17
推荐指数
1
解决办法
3万
查看次数

AspectJ + Junit + Maven - 在测试中识别切入点但NoSuchMethodError:抛出aspectOf()异常

我已经在这里跟踪了几乎所有的JUnit + Maven + AspectJ问题,甚至我很确定我已经正确设置了所有内容,我无法测试它.

我有一个Maven模块只有一个方面:

@Aspect
public class AssertionAspect {

    @Pointcut("execution(@org.junit.Test * *())")
    public void testMethodEntryPoint() {}

    @Before("testMethodEntryPoint()")
    public void executeBeforeEnteringTestMethod() {
        System.out.println("EXECUTE ACTION BEFORE ENTERING TEST METHOD");
    }

    @After("testMethodEntryPoint()")
    public void executeAfterEnteringTestMethod() {
        System.out.println("EXECUTE ACTION AFTER ENTERING TEST METHOD");
    }
}
Run Code Online (Sandbox Code Playgroud)

非常简单.我想要做的就是在我的测试项目中每次执行任何测试方法之前和之后做一些事情@Test.

现在,我使用aspectj-maven-plugin我的<build>是这样的:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>aspectj-maven-plugin</artifactId>
      <version>1.4</version>
      <configuration>
        <aspectLibraries>
          <aspectLibrary>
            <groupId>my.package</groupId>
            <artifactId>with-aspects</artifactId>
          </aspectLibrary>
        </aspectLibraries>
        <source>1.6</source>
        <target>1.6</target>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>test-compile</goal>
          </goals>
          <configuration>
            <showWeaveInfo>true</showWeaveInfo>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build> …
Run Code Online (Sandbox Code Playgroud)

java junit aspectj maven aspectj-maven-plugin

11
推荐指数
1
解决办法
6156
查看次数

如何在Android Studio中配置AspectJ

我正在尝试在Android Studio中配置AspectJ.
但经过一切试验和错误,它不起作用!令人惊讶的是,我能够使用Eclipse Kepler版本

.我遵循Android Studio的步骤

  1. 创建了示例Android项目
  2. 文件>设置> AspectJ在插件部分搜索AspectJ的插件
  3. 假设在Studio中没有其他工作要做,除了build.gradle文件的配置
  4. 添加compile 'org.aspectj:aspectjrt:1.8.1'到build.gradle(模块:app)
  5. Analytics_onBackPressed.aj后退按钮检测而设计
  6. Analytics_OnClick.aj点击事件检测而创建
  7. Analytics_onCreate.aj组件创建事件检测创建
  8. 创建了上面提到的*.aj类将在内部调用的必要依赖类
  9. 在Manifest中添加了必需的权限
  10. 运行项目未检测到任何事件(按钮单击,创建或单击后退按钮)
  11. 按照这些链接ReferenceLinkOne,ReferenceLinkTwoReferenceLinkThree

我的问题是使AspectJ与Android Studio一起工作所需的更多问题


Eclipse中遵循的步骤使AspectJ正常工作

  1. 下载了EclipseKepler版本
  2. 通过安装新软件选项搜索http://download.eclipse.org/tools/ajdt/43/update
  3. 已安装AspectJ Development Tools (Required).
  4. 创建示例android项目
  5. Analytics_onBackPressed.aj后退按钮检测而设计
  6. Analytics_OnClick.aj点击事件检测而创建
  7. Analytics_onCreate.aj组件创建事件检测创建
  8. 在Manifest File中添加了必需的权限
  9. 右键单击项目并通过以下方式将项目转换为AspectJ 将项目转换为AspectJ
  10. 使用AspectJ运行时库配置的Java构建路径
  11. 现在,在运行项目时,我能够检测组件oncreate,后退按钮按下

使用环境

Android Studio:2.1.2

JRE:1.8.0

Windows 7企业版

任何帮助都非常感谢! …

android aspectj android-studio aspectj-maven-plugin

11
推荐指数
2
解决办法
3505
查看次数

由于缺少tools.jar,Maven AspectJ插件无法使用Java 9构建

我将JDK版本从8切换到9,由于缺少tools.jar,AspectJ插件不再有效:

目标org.codehaus.mojo的执行默认值:aspectj-maven-plugin:1.10:编译失败:插件org.codehaus.mojo:aspectj-maven-plugin:1.10或其中一个依赖项无法解析:找不到工件com .sun:tools:jar:9.0.1在指定路径C:\ Program Files\Java\jdk-9.0.1 /../ lib/tools.jar

我知道从Java 9 JDK中删除了tools.jar(和rt.jar).我想知道是否有办法让Maven AspectJ插件在没有tools.jar的情况下使用Java 9?

这是我的插件定义版本信息:

    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>aspectj-maven-plugin</artifactId>
      <version>1.10</version>
      <configuration>       
      <encoding>${project.build.sourceEncoding}</encoding>
      <complianceLevel>1.9</complianceLevel>
      <showWeaveInfo>true</showWeaveInfo>
      <XnoInline>true</XnoInline>         
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
              <goal>test-compile</goal>
          </goals>
        </execution>
      </executions>     
      <dependencies>
       <dependency>
       <groupId>org.aspectj</groupId>
       <artifactId>aspectjrt</artifactId>
       <version>1.9.0.RC2</version>
      </dependency> 
      <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjtools</artifactId>
        <version>1.9.0.RC2</version>
       </dependency>          
      </dependencies>
    </plugin>
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven aspectj-maven-plugin

11
推荐指数
3
解决办法
3885
查看次数

最佳@EnableTransactionManagement配置

我对这个主题感到很困惑,并且在Spring 4.x文档中看到了很少的建议.首先让我说我可以按照我想要的方式配置我的项目.静态编织,编织时编织,无编织等

我只想要最佳性能.但如果性能差异是微秒,那么我只想要最简单.我只关心会影响我的客户的性能差异.

好的,以下是相关选项:

  1. adviceMode = proxy,proxyTargetClass = true
  2. adviceMode = proxy,proxyTargetClass = false
  3. adviceMode = aspectJ,编译时编织
  4. adviceMode = aspectJ,加载时编织

只要在运行时速度很快,我就可以为应用程序初始化添加一些时间.

那么这四种配置事务管理方式之间的权衡是什么?

是否有功能权衡还是仅仅是性能问题?

请注意,我使用的是Spring 4.0.2和Java 1.7.如果有基本上回答这个问题的Spring 4.0文档,那么我道歉并且只是将我重定向到doc.到目前为止,我已经看到文档说明如何设置它们而不是它们如何比较.谢谢!

另请注意,网络上关于此的大部分信息都已过时.所以我正在寻找当前的比较.

spring spring-transactions aspectj-maven-plugin

7
推荐指数
1
解决办法
2687
查看次数

在maven构建中Aspectj坏版本号警告

我在maven构建期间收到警告,我想修复.

maven构建期间生成的警告:

[INFO] --- aspectj-maven-plugin:1.4:编译(默认)@core --- [警告]在C:\ Users\DR25687.m2\repository\org\aspectj\aspectjrt\1.7中找到错误的版本号. 1\aspectjrt-1.7.1.jar 预计1.6.11发现1.7.1


pom文件

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <showWeaveInfo>true</showWeaveInfo>
        <source>1.7</source>
        <target>1.7</target>
        <verbose>true</verbose>
        <Xlint>ignore</Xlint>
        <complianceLevel>1.7</complianceLevel>
Run Code Online (Sandbox Code Playgroud)

家长POM

<org.aspectj.version>1.7.1</org.aspectj.version>

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>${org.aspectj.version}</version>
    <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

java maven aspectj-maven-plugin

6
推荐指数
1
解决办法
2208
查看次数

Mojo 的 AspectJ Maven 插件是否适用于 jdk 9+?

我有一个使用 Mojo 的 AspectJ Maven 插件的项目。它适用于 jdk 8。当我尝试切换到 jdk14 时,构建失败并出现以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.11:compile (default) on project AspectJDemo: Execution default of goal org.codehaus.mojo:aspectj-maven-plugin:1.11:compile failed: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.11 or one of its dependencies could not be resolved: Could not find artifact com.sun:tools:jar:13.0.2 at specified path /usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home/../lib/tools.jar -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

Mojo 的网站确认此文件是必需的依赖项。但是,根据tools.jar 自 jdk 9 以来已被删除。我尝试在我的依赖项中提供此 jar 文件的硬编码路径,如下所示:

        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>/path/to/tools.jar</systemPath>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

但是随后构建完全失败,就好像它完全停止识别 Java 一样。我收到许多错误,例如:

[ERROR] can't find critical required type java.lang.Object
        <unknown source file>:<no …
Run Code Online (Sandbox Code Playgroud)

java aop aspectj maven aspectj-maven-plugin

6
推荐指数
1
解决办法
880
查看次数

如何解决 java.lang.ClassNotFoundException: org.aspectj.lang.ProceedingJoinPoint 异常?

大家好,我在运行我的应用程序时在 Spring-Boot 上收到以下错误:

java.lang.IllegalStateException: Failed to load ApplicationContext

    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:189)
    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:131)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'timedAspect' defined in class path resource [com/project/service/config/MicrometerConfig.class]: Bean instantiation via factory method failed; nested …
Run Code Online (Sandbox Code Playgroud)

java aspectj-maven-plugin spring-boot spring-micrometer

6
推荐指数
1
解决办法
1万
查看次数