Xlint:adviceDidNotMatch警告pom.xml文件中的aspectj-maven-plugin

问题描述 投票:0回答:1

以下是我收到的警告:

Description Resource    Path    Location    Type
advice defined in org.springframework.mock.staticmock.AbstractMethodMockingControl has not been applied [Xlint:adviceDidNotMatch]

Location    Type
advice defined in org.springframework.mock.staticmock.AnnotationDrivenStaticEntityMockingControl has not been applied [Xlint:adviceDidNotMatch]

Location    Type
advice defined in org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect has not been applied [Xlint:adviceDidNotMatch]

Location    Type
advice defined in org.springframework.scheduling.aspectj.AbstractAsyncExecutionAspect has not been applied [Xlint:adviceDidNotMatch]

我无法找到解决方案来获取这些警告。我当前的项目pom文件包含以下版本:

JDK version = 1.7
roo version = 1.3.1.RELEASE
spring version=3.2.18.RELEASE
aspectj version = 1.8.1
aspectj-maven-plugin version = 1.4

解决方案1尝试:我尝试更新JDK版本= 1.8和roo版本= 2.0.0.RELEASE,但仍然提出相同的警告。

解决方案2尝试:我在<Xlint>adviceDidNotMatch=error,noGuardForLazyTjp=ignore</Xlint>中添加了与aspectj-maven-plugin相关的<configuration tag>标签。这也没有用。

有关删除这些警告的其他方法的任何建议。

java spring maven aspectj
1个回答
0
投票

因为你只显示了几个警告(不是错误,所以放松!)而不是MCVE,即应用程序+方面代码+ POM +任何其他配置,我只能推测你的实际情况,但也许有问题的Maven模块是通过加载时编织或编译时编织在其他模块或应用程序中使用的方面库。无论如何,在这种情况下,警告是正常的,因为如果在编译方面时没有匹配的目标代码,则切入点无法匹配。因此必须有类似的信息警告,如果我是你,我不会压制它们。

另一种情况是,在您的模块中,方面和应用程序代码在一起,您实际上希望每个方面都匹配。在这种情况下,警告会告诉您可能您的切入点不匹配,因为它们在某种程度上是错误的。然后你只需修复它们。

这是您非常通用的问题的一般答案。如果你愿意更新你的问题(通过编辑)并通知我,添加上面提到的MCVE(请点击链接以了解我的意思),我也可以编辑这个答案并使其更精确。针锋相对 - 如果给我更多信息,我可以用同一种货币偿还。


编辑:再想一想,我想知道你为什么要使用AspectJ编译器,因为你似乎正在使用Spring。 Spring最常见的场景是使用Spring AOP(它不需要任何AspectJ编译器,因为它是基于代理的)。当然你也可以在Spring中使用完整的AspectJ,然后我上面说的再次适用。但为此,我真的需要更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.