@ConfigurationProperties aspectj-maven-plugin冲突

时间:2015-12-26 10:59:59

标签: java spring maven spring-boot

当我在基于aspectj-maven-plugin的maven编译过程中使用@ConfigurationProperties时,我收到以下错误消息:

  

[INFO]显示类型消息的AJC消息详细信息:[error,   警告,失败] [警告]字段值处理   不支持@ConfigurationProperty元数据:

     

[ERROR]内部编译器错误:java.lang.IllegalStateException:   无法写入元数据   org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor.writeMetaData(ConfigurationMetadataAnnotationProcessor.java:367)

这是我的pom设置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
     <artifactId>aspectj-maven-plugin</artifactId>
     <version>1.8</version>
     <configuration>
         <forceAjcCompile>true</forceAjcCompile>
         <source>${java.version}</source>
         <target>${java.version}</target>
         <Xlint>ignore</Xlint>
         <complianceLevel>${java.version   </complianceLevel>
         <showWeaveInfo>true</showWeaveInfo>
         <encoding>${project.build.sourceEncoding}</encoding>
         <verbose>true</verbose>
         <!--<aspectLibraries/>-->
     </configuration>
     <executions>
         <execution>
             <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
             </goals>
         </execution>
     </executions>
</plugin>

解决方案是什么?

2 个答案:

答案 0 :(得分:3)

Try this one: https://github.com/spring-projects/spring-boot/issues/4847

Either solution works. I indeed missed the <sources/> in aspectj-maven-plugin proposed in #4825

or adding <proc>none</proc> in maven-compiler-plugin

or adding both of them together.

答案 1 :(得分:0)

原因是配置元数据处理器尝试使用Filer.getResource读取它的输出资源,并在稍后的Filer.createResource上运行到etc / ajc错误https://bugs.eclipse.org/bugs/show_bug.cgi?id=530665

解决方法可能是在通过ajc编译之前删除META-INF / spring-configuration-metadata.json。然而,这是一个糟糕的解决方案,无法在基于Maven的项目中轻松实现。