Xlint: adviceDidNotMatch предупреждений из-за aspectj-maven-plugin в файле pom.xml - PullRequest
0 голосов
/ 27 февраля 2019

Ниже приведены предупреждения, которые я получаю:

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> тег внутрь <configuration tag> относительно aspectj-maven-plugin.Это тоже не сработало.

Любые предложения по другим подходам для удаления этих предупреждений.

1 Ответ

0 голосов
/ 27 февраля 2019

Поскольку вы показываете только пару предупреждений (не ошибок, так что расслабьтесь!), А не MCVE , т. Е. Приложение + код аспекта + POM + любая другая конфигурация, я могу только догадываться о вашей реальной ситуации,но, может быть, рассматриваемый модуль Maven является библиотекой аспектов, которая будет использоваться в других модулях или приложениях посредством ткачества во время загрузки или ткачества во время компиляции.В любом случае, в этом случае предупреждения были бы нормальными, потому что pointcut не может совпадать, если во время компиляции аспекта нет соответствующего целевого кода.Так что должны быть информационные предупреждения, подобные этому, я бы не подавлял их на вашем месте.

Альтернативный случай - это то, что в вашем модуле есть код аспекта и приложения вместе, и вы фактически ожидаете, что каждый аспект будет совпадать.В этом случае предупреждение говорит вам, что, вероятно, ваши pointcut не совпадают, потому что они так или иначе неверны.Тогда вам просто нужно их исправить.

Это общий ответ на ваш очень общий вопрос.Если вы хотите обновить свой вопрос (отредактировав его) и уведомить меня, добавив MCVE, о котором я упоминал выше (перейдите по ссылке, чтобы узнать, что я имею в виду), я также могу отредактировать этот ответ и сделать его более точным.Тит за тат - если вы дадите мне больше информации, я смогу расплатиться в той же валюте.


Редактировать: Подумав еще, мне интересно, почему вы используете компилятор AspectJвообще, потому что вы, кажется, работаете с Spring.Наиболее распространенным сценарием для Spring является использование Spring AOP (для которого не требуется компилятор AspectJ, потому что он основан на прокси).Конечно, вы также можете использовать полный AspectJ из Spring, тогда сказанное выше применимо снова.Но для этого мне действительно нужно больше информации.

...