为什么在制作Spring项目时我没有接触到weaver警告?

当我制作Spring项目时,我似乎得到了一堆这样的警告。 该项目使用Compile Time Weaving和各种Spring注释,如Transactional,Autowired和Configurable。

我有三个问题:它们是什么(效果是什么)? 我应该关注他们吗? 和“我该怎么做才能删除它们?”

ajc: this affected type is not exposed to the weaver: com.myapp.domain.UserEntity [Xlint:typeNotExposedToWeaver] 

让我知道你需要帮助我解决这个问题。 我可以发布POM文件的相关部分,部分Java Spring配置文件或其他任何内容。 我真的不知道需要什么,所以让我知道。

我在春季论坛上看到了它,但那个地方是一个鬼城。 有几个人问了这个问题,但没有答案。

我正在使用Java配置Spring和CTW。

它们是什么(效果是什么)?

它( ajc )说它已经找到了一些它认为应该是或被“编织”的类,但是这不能完成/没有完成。

我应该关注他们吗?

是。 这意味着AspectJ编译时编织不会发生; 即某些类的注释不会生效。

我该怎么做才能删除它们?

更改构建配置,以便编织者可以找到编织所需的所有代码。

我猜你的应用程序涉及多个Maven模块。 如果是这样,那么这个答案有一些链接到相关的Eclipse / AspectJ和Maven文档: https : //stackoverflow.com/a/13120709/139985 。 似乎需要明确告诉AspectJ Maven插件在哪里寻找东西。

我有类似的问题。 仔细观察后,我意识到警告仅在test-compile阶段发生,其中aspectj不够智能,无法自动查看主java源目录以及测试源目录。 我通过将两个目标分成不同的配置来解决它。 POM的相关部分如下:

   org.codehaus.mojo aspectj-maven-plugin 1.10  1.8   org.springframework spring-aspects   1.8 1.8    compile  compile     test-compile   test-compile  ${project.basedir}  src/main/java/**/*.java src/test/java/**/*.java