重新运行Spring Boot配置注释处理器以更新生成的元数据

时间:2015-11-02 17:45:32

标签: java spring maven intellij-idea

我添加了:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

到我的pom.xmlintellij个请求/警告。

现在我看到“重新运行Spring Boot配置注释处理器来更新生成的元数据”。

我如何做intellij要求我做的事情?

此链接B.2 Generating your own meta-data using the annotation processor没有说明。

8 个答案:

答案 0 :(得分:39)

按照这些说明为我工作:http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

关于必须重新运行注释处理器的消息有点令人困惑,因为即使没有任何改变,它仍然会一直保持在那里。

关键似乎是在添加所需的依赖项之后或在进行任何属性更改之后重建项目。完成此操作并返回YAML文件后,我的所有属性现在都链接到配置类。

您可能还需要单击Maven窗格中的“Reimport All Maven Projects”按钮,以获取.yaml文件视图,以识别返回相应Java类的链接。

答案 1 :(得分:14)

这些答案都不适合我。如果您只想禁用该消息,请转到Intellij首选项 - &gt;编辑 - &gt;一般 - &gt;外观,取消选中&#34;显示Spring Boot元数据面板&#34;。

但是,如果您不打扰太多,也可以使用该消息,以确保您不会错过任何您可能感兴趣的其他Spring Boot元数据消息。

答案 2 :(得分:8)

我有同样的问题。问题是Spring Boot注释处理器在spring-configuration-metadata.json文件夹中生成/target/classes/META-INF文件。

如果您碰巧在我这样的IntelliJ中忽略了这个文件夹(因为什么哎呀,谁关心类文件?),IDE不会对该文件编制索引。因此,没有完成,和烦人的消息。

只需从位于target的忽略文件/文件夹列表中删除Settings > Editor > File Types > Ignore files and folders

答案 3 :(得分:4)

您可以通过以下方式在IntelliJ中启用注释处理器:

  1. 点击文件
  2. 点击“设置”
  3. 在左上角的小搜索框中,搜索&#34;注释处理器&#34;
  4. 检查&#34;启用注释处理&#34;
  5. 点击确定

答案 4 :(得分:2)

这些选项都不适合我。我发现注释处理器的自动检测非常不稳定。我最终在pom.xml文件中创建了一个插件部分,该部分显式设置了用于项目的注释处理器。这样做的好处是您不需要依赖任何IDE设置。

<plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <compilerVersion>1.8</compilerVersion>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessors>
                    <annotationProcessor>org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor</annotationProcessor>
                    <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
                    <annotationProcessor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</annotationProcessor>
                </annotationProcessors>
            </configuration>
        </plugin>

答案 5 :(得分:2)

对我来说,其他答案无效。我必须打开Files并在Intellij上进行Invalidate caches and restart。之后,一切又恢复正常了。

答案 6 :(得分:0)

  1. 包括对spring-boot-configuration-processor的依赖
  2. 在IDEA的Maven窗格中单击“重新导入所有Maven项目”
  3. 重建项目

答案 7 :(得分:0)

spring-boot-configuration-processor 中包含对 build.gradle 的依赖:

annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:2.4.1"

除了使 IntelliJ 的缓存无效并重新启动之外,唯一对我有用的是

  1. 侧面板中的刷新按钮 Reload All Gradle Projects
  2. Gradle 任务 Clean
  3. Gradle 任务 Build