问题标签 [aspectj-maven-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - Mockito 的间谍不能与使用 maven 的 AspectJ 一起工作
我有以下测试类,并且正在使用 Mockito 的间谍。通过使用 Eclipse 运行我的单元测试(右键单击->作为单元测试运行),所有测试都通过了,这意味着使用 m2e 和 AJDT 的 eclipse 构建过程可以正常工作。
但是,当我使用 maven 运行测试时,出现以下异常。
在带有 AJDT 的 Eclipse 中使用的 AJC 编译器和我的 AspectJ maven 插件配置之间有什么区别?我在这里缺少哪个配置或阶段?
这是我的 pom.xml:
更新:我还没有找到解决方案,但我知道为什么会这样。问题实际上在于覆盖 someMethod()。删除方法覆盖或注释掉 aspectj maven 插件可以解决该问题作为解决方法。我不能让 AspectJ 退出我的项目,所以我也必须模拟 someMethod() 而不覆盖它(例如使用 Mockito 本身)。它对我来说看起来像是一个错误,但我不太确定它来自 AspectJ 还是 Mockito。
java - 为什么 aspectj 将我的测试文件夹中的 Aspects 编织到我的源类中(而不是测试类)?
我遇到了 aspectj-maven-plugin 和 Eclipse Juno 的一个奇怪问题。我的 pom 的构建部分中有以下插件 defn:
@Aspect
我在我的 src/test/java/... 文件夹中 有一个声明。
如果我从命令行构建(即:mvn clean package),我的类将正确/按预期构建。
但是,当我从 Eclipse 中构建时,我的测试文件夹中声明的方面被编织到我的输出类文件夹 .class 文件中,而不是 test-classes 文件夹(通过使用反编译器确认)。
我的配置不正确吗?我的 Eclipse 项目中是否缺少一个设置来指示在编译时忽略这些方面?如果我在 Eclipse 中检查我的 Java Build 路径配置,我会看到 src/main/java -> target/classes 而 src/test/java-> target/test-classes。
这可能与配置的生命周期映射有关吗?我有:
我安装了 AJDT 1.7.3 (org.aspectj) 和 2.2.3 (org.eclipse.ajdt)(我不知道为什么它安装了这两个版本)。
更新 2
我将我的 Aspectj-maven-plugin 配置更新为以下配置并覆盖了 m2e 连接器设置,它似乎可以工作,但如果这适用于其他人,我希望进行第 3 方验证,因为它似乎依赖于编辑器/配置.
使用以下 m2e 配置覆盖 AJDT/m2e 0.14 框架附带的 m2e 连接器设置:org.eclipse.m2e 生命周期映射 1.0.0 org.codehaus.mojo aspectj-maven-plugin [1.7,) 编译 org.codehaus.mojo aspectj-maven-plugin [1.7,) 测试编译
如果这对其他人有效,下一步是尝试了解 m2e 连接器如何/为何失败,以及需要修复的位置。
我将我的测试代码(包括@kriegaex 测试项目)上传到我的 github 示例项目:github.com/benze/aspectj-maven-plugin-defect-example.git。根据自述文件,要启用/禁用覆盖 m2e-connector,请启用 override-m2e-lifecycle 配置文件。
maven - Maven插件中的aspectj无法调用切入点
A = 我写的 maven 插件
B = 使用 A 作为其构建过程的一部分的 maven 项目
当我使用 maven 构建 A 时,aspectj 按预期工作,并且我在单元测试期间达到了我的切入点。我使用 aspectj-maven-plugin 来构建它,因为我使用 maven 构建了 A。
问题是当我使用 maven 构建 B 并将 A 作为插件依赖项包含时,在构建过程中执行 A 时我没有命中我的切入点。
我尝试在 B 中包含 aspectj-maven-plugin 来解决这个问题,但没有运气。我还在 B 中尝试了各种形式的配置以尝试解决此问题。目前,我对 B 的配置如下:
java - Maven使用不同的jvm编译aspectj
我有一个使用 SwingUtilities2 的项目,该项目仅在 Java 5 中可用。我正在尝试使用较新的 JDK(使用 Jenkins)对其进行编译。仅涉及纯 Java 时,我没有任何问题,我只是将编译插件设置为:
哪里${jdk.path}
指向 Java 1.5 JDK。
当尝试添加方面时,它总是使用默认的 jdk (1.8) 进行编译。
我也在尝试在 maven-compiler-plugin 中设置compilerId
+ (请参阅: http ://maven.apache.org/plugins/maven-compiler-plugin/non-javac-compilers.html ),但也没有帮助。dependencies
任何线索如何做到这一点?
编辑:将 Jenkins 作业类型从 Maven 更改为 Free Style,并使用 JDK 1.5 调用它。现在用方面编译。
maven - aspectj-maven-plugin 的源代码丢失了吗?
这是对我之前的 codehaus 问题的一点跟进。这一次,我正在寻找 aspectj-maven-plugin 的来源。
我试过搜索 github.com,但我发现最接近的是 v1.7 的个人 fork。
既然 codehaus 已经关闭,插件的所有源代码是否都丢失了?我也没有在 mojohaus 网站上找到任何有用的东西。
spring - 即使在为编译时编织添加 aspectj maven 插件后,自调用 AOP 问题仍然存在
我希望使用 AOP 登录我们的项目。我面临的问题是,如果一个类的方法在其中调用同一类的另一个方法,那么由于代理的做事方式,AOP 将无法在该调用上工作。为了解决这个问题,我正在尝试使用 aspectj maven 插件进行编译时编织。我的顶级项目 pom 如下所示:
我有 6 个子项目,但我希望只登录其中一个进行基于 AOP 的登录。该项目的 pom 如下所示:
我虽然这可以解决问题,但它仍在进行基于代理的方法调用。还需要做什么?
编辑:Spring context.xml 文件:
LoggingAspect.java
目标文件具有如下处理方法:
由于我已经评论了 autoproxy 部分,所以我说不要使用代理。但是,现在没有日志出现(无论是在调用 process 方法时还是在调用 internalMethod 时)。如果 autoproxy 开启,则 process method 会显示 log,但 internalMethod 不会显示 log,这是可以理解的。
spring - 在@Aspect 类的编译时编织中,@Autowired 依赖项为空
我在 Maven 项目中有一个方面类:my-aspect-project
我已经使用 aspectj-maven-plugin 在 maven 中进行编译时编织,如下所示
Aspect 按预期工作,并且每当调用带有 @Log 注释的方法时都会调用建议,但是在 aspect 中自动装配的 messageSource 为 null,因此未读取属性文件并且日志消息为 null。
我正在使用 spring boot 应用程序并且没有使用 xml。
我读了这个[ http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-aj-configure],我不确定这在我的情况下如何工作,
我试图在我的 Appconfig 中定义 bean,如下所示,
这也行不通。我还在 bean 方法 loggingAspect() 中添加了一个调试点,它根本没有被调用。
所以请告诉我,
1)如何使spring注释与我用@Aspect注释的方面类一起工作?
2)我还想使用弹簧配置文件来启用或禁用方面,并且由于弹簧注释在我的方面不起作用,我不知道如何使这项工作?
提前致谢
spring - AspectJ 编译时编织为只有参数构造函数的 spring bean 抛出 BeanInstantiationException
我在 Maven 项目中有一个方面类:my-aspect-project
我已经使用 aspectj-maven-plugin 在 maven 中进行编译时编织,如下所示
Aspect 按预期工作,并且每当调用带有注释的方法或类时都会调用建议@Log
。
我正在使用 spring boot 应用程序并且没有使用 xml。
我在我的 Appconfig 中定义了 bean,如下所示,以使 spring 将依赖项设置为方面并且它可以工作。
但是,如果一个带有@Log
参数构造函数的类被注释,那么spring,在服务器启动时为带@Log
注释的类抛出 BeanCreationException
例外:
aspectj - Spring-Data_Neo4j 高级映射不起作用
根据此用户指南,当使用高级映射模式时,对属性和关系的任何访问通常都会向下读取到数据库。这是否意味着不会获取整个对象,只会读取必要的属性?如我错了请纠正我。
我正在使用高级映射模式,这是我的 Maven 设置(仅显示必要的代码):
我的 Spring 配置运行良好,所以我只是跳过它并保存一些地方。
这里有点奇怪,当我访问 User 对象的 lover 属性的 name 属性时,它总是返回 null:
系统 println 结果为:
添加@Fetch 时:
事实证明是正确的:
有谁知道出了什么问题?谢谢
maven - AspectJ + Junit + Maven + Java8
我遵循了这个SO question并尝试为 java8 实现它。我的项目不是春季项目。
方面
JUnit 测试
POM.xml
我没有看到任何错误。我错过了什么吗?还是有什么错误的神器?当我运行 junit 测试时,我想要什么,所有方面都可以正常工作。