我有一个Gradle 7.3.3方面库和一个使用该库的Gradle 7.3.3项目,我正在该项目中应用io.freefair.aspectj.post-compile-weaving
Gradle插件。
plugins {
id 'io.freefair.aspectj.post-compile-weaving' version '6.3.0'
}
然后,我将库作为方面依赖项添加到项目中。
dependencies {
aspect 'com.example:my-aspect-lib:0.0.1'
}
除了我希望在编译后编织的库方面之外,项目本身也有我希望Spring AOP在运行时处理的方面,这些方面不能在编译后编织,但是post-compile-weaving
的默认行为是在项目中编织所有方面。
我已经尝试了很多不同的ajc配置迭代,包括修改compilerArgs
,但是到目前为止,我还不能从编译后编织中排除项目方面。
compileJava {
ajc {
options {
aspectpath.minus files()
aspectpath.setFrom configurations.aspect
}
}
}
是否可以使用post-compile-weaving
插件排除方面?
- 我也问过这个问题here,但截至本文尚未收到任何回复。*
1条答案
按热度按时间kknvjkwl1#
AspectJ编译器有一个未公开的选项
-xmlConfigured
,通过该选项可以指定一个类似于用于配置加载时编织(LTW)的aop.xml
文件的XML文件。关于如何使用该选项的最佳概述可以在我在2014年提出的AspectJ documentation bug中找到。只需通读该选项并按照我提供的一些链接进行操作。如果Freefair编译后插件支持某种方式来添加自定义编译器选项,我想这就是你想要的,因为在XML文件中你可以显式地指定编译器应该使用哪些方面。
如果你在应用这个解决方案时有任何具体的问题,请随时告诉我--但只有在你有MCVE的情况下,最好是在GitHub上,才能告诉我。
**更新:**另见我关于
-xmlConfigured
的其他回答:这将为您提供足够的信息,使其适应Gradle。