Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在做我的Spring项目时会得到一个未暴露于weaver警告的消息?_Java_Spring_Aspectj - Fatal编程技术网

Java 为什么我在做我的Spring项目时会得到一个未暴露于weaver警告的消息?

Java 为什么我在做我的Spring项目时会得到一个未暴露于weaver警告的消息?,java,spring,aspectj,Java,Spring,Aspectj,当我做我的Spring项目时,我似乎收到了很多这样的警告。该项目使用编译时编织和各种Spring注释,如事务性、自动连接和可配置 我有三个问题:它们是什么(效果如何)?我应该关心他们吗?以及“我能做些什么来移除它们?” 让我知道你需要什么来帮助我解决这个问题。我可以发布POM文件的相关部分、javaspring配置文件的部分或其他内容。我真的不知道需要什么,所以让我知道 我在春季论坛上看到过,但那个地方是个鬼城。有几个人问过这个问题,但没有答案 我正在使用Spring和CTW的Java配置 它们

当我做我的Spring项目时,我似乎收到了很多这样的警告。该项目使用编译时编织和各种Spring注释,如事务性、自动连接和可配置

我有三个问题:它们是什么(效果如何)?我应该关心他们吗?以及“我能做些什么来移除它们?”

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

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

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

它们是什么(效果如何)

它(
ajc
)是说它发现了一些它认为应该或已经“编织”起来的类,但那是不可能做到的/还没有做到的

我应该关心他们吗

对。这意味着AspectJ编译时编织无法正常进行;i、 e.某些类上的注释不会生效

我能做些什么来移除它们

ajc: this affected type is not exposed to the weaver: com.myapp.domain.UserEntity [Xlint:typeNotExposedToWeaver]
更改构建配置,以便weaver可以找到它需要编织的所有代码


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

我也遇到了类似的问题。仔细检查后,我发现警告只发生在
测试编译
阶段,此时aspectj不够聪明,无法自动查看主java源目录和测试源目录。我通过将这两个目标分成不同的执行来解决它,使用不同的配置。POM的相关部分如下所示:

        <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>aspectj-maven-plugin</artifactId>
        <version>1.10</version>
        <configuration>
          <complianceLevel>1.8</complianceLevel>
          <aspectLibraries>
            <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
            </aspectLibrary>
          </aspectLibraries>
          <source>1.8</source>
          <target>1.8</target>  
        </configuration>
        <executions>
          <execution>
            <id>compile</id>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <!-- add explicit instructions for test compile or it can't weave main src classes -->
          <execution>
            <id>test-compile</id>
            <configuration>
                <goals>
                    <goal>test-compile</goal>           
                    <sources>
                        <basedir>${project.basedir}</basedir>
                        <includes>
                            <include>src/main/java/**/*.java</include>
                            <include>src/test/java/**/*.java</include>
                        </includes>
                    </sources>
                </goals>
            </configuration>
        </execution>
        </executions>
    </plugin>

org.codehaus.mojo
aspectj maven插件
1.10
1.8
org.springframework
春季方面
1.8
1.8
编译
编译
测试编译
测试编译
${project.basedir}
src/main/java/***.java
src/test/java/***.java

我开始意识到这与“让诗篇干净”构建有关。可能是编译时weaver无法访问二进制类型的东西,它访问jar而不是源代码?我似乎一直收到不同的警告。谢谢@Stephen C。据我所知,我没有多个模块。然而,spring有很多spring方面。我认为它们必须使用加载时间编织,因为它们是作为一个罐子来的。这可能是问题的一部分吗?可能是。但请注意,它抱怨的是您的一个类,而不是SpringAspectsJAR文件中的一个类。我不确定它为什么找不到它们。这是一个标准的mvn布局/src/main/java等等。我的项目中没有.aj文件。特别是,上面@StephenC的链接为我提供了所需的答案,即修改aspectj maven插件的配置。