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

Eri*_*cis 83 java spring intellij-idea maven

我已经添加:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)

pom.xml每次intellij的请求/警告.

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

我怎么做intellij要求我做的事情?

此链接B.2使用注释处理器生成您自己的元数据,但没有说明.

Pat*_*era 49

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

关于必须重新运行注释处理器的消息有点令人困惑,因为它似乎始终保持在那里,即使没有任何改变.

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

您可能还需要单击Maven窗格中的"重新导入所有Maven项目"按钮,以获取.yaml文件视图以识别返回相应Java类的链接.

  • "关键似乎是重建项目"帮助了我.消息仍然在这里,但至少在`application.properties`文件中自动完成我的自定义属性开始工作. (2认同)

Lor*_*ori 17

这些答案都不适合我.如果您只想禁用该消息,请转到Intellij首选项 - >编辑器 - >常规 - >外观,取消选中"显示Spring Boot元数据面板".

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

  • 复选框位于首选项 - >语言和框架 - >弹簧 - >弹簧启动下的IDEA 2017.2 (3认同)

Dea*_*iny 8

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

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

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

  • 我在忽略的文件中看不到“ target”。它在我的`.gitignore`中。 (2认同)
  • 无论目标是否被排除,它都将被使用(我是负责此功能的开发人员).如果您可以重现这种错误行为,请提交错误报告. (2认同)
  • @YannCébron 在这里也一样,带有 gradle。该文件在 ./build/classes/java/main/META-INF/spring-configuration-metadata.json 中创建,但 IntelliJ 不考虑它。如果我手动将 json 文件移动到 src/main/resources/META-INF 它可以工作(配置不再变黄) (2认同)

Bra*_*n S 8

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

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


fac*_*xot 6

包含对spring-boot-configuration-processorin的依赖build.gradle

annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:2.4.1"
Run Code Online (Sandbox Code Playgroud)

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

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


Jas*_*ran 5

这些选项都不适合我。我发现注释处理器的自动检测非常困难。我最终在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>
Run Code Online (Sandbox Code Playgroud)

  • 这个为我工作。我使用了annotationProccessorPaths而不是定义单个类。`&lt;annotationProcessorPaths&gt; &lt;path&gt; &lt;groupId&gt; org.springframework.boot &lt;/ groupId&gt; &lt;artifactId&gt; spring-boot-configuration-processor &lt;/ artifactId&gt; &lt;version&gt; $ {parent.version} &lt;/ version&gt; &lt;/ path&gt; ...` (2认同)

tim*_*nen 5

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


Sep*_* GH 5

对我来说,其他答案不起作用。我不得不去打开FilesInvalidate caches and restart在 Intellij 上做。在那之后,一切又正常了。


rip*_*eal 5

我只是需要

@EnableConfigurationProperties({MY_PROPS_CLASS.class})
Run Code Online (Sandbox Code Playgroud)

在主应用程序类中,它帮助我解决了这个问题