Vuelva a ejecutar el procesador de anotaciones de configuración de Spring Boot para actualizar los metadatos generados

99

He añadido:

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

a mi pom.xmlpor intellijpetición / advertencia 's.

Ahora veo "Vuelva a ejecutar el procesador de anotaciones de configuración de Spring Boot para actualizar los metadatos generados".

¿Cómo hago lo intellijque me pide que haga?

Este enlace, B.2 Generación de sus propios metadatos utilizando el procesador de anotaciones , no tiene instrucciones.

Eric Francis
fuente

Respuestas:

60

Seguir estas instrucciones funcionó para mí: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Ese mensaje sobre tener que volver a ejecutar el procesador de anotaciones es un poco confuso, ya que parece que permanece allí todo el tiempo, incluso si nada ha cambiado.

La clave parece ser reconstruir el proyecto después de agregar la dependencia requerida o después de realizar cualquier cambio de propiedad. Después de hacer eso y volver al archivo YAML, todas mis propiedades ahora estaban vinculadas a las clases de configuración.

Es posible que también deba hacer clic en el botón 'Volver a importar todos los proyectos de Maven' en el panel de Maven para obtener la vista del archivo .yaml para reconocer los enlaces a la clase Java correspondiente.

Patrick Herrera
fuente
¿Entonces no hay forma de deshacerse del mensaje?
OrangeDog
1
@OrangeDog No es que pueda encontrar. Aprendí a ignorarlo, pero siempre puedes presentar una solicitud de función a JetBrains. Se imaginaría que podrían ser un poco más inteligentes al respecto y solo mostrarlo si saben que el archivo de clase o el archivo de configuración realmente ha cambiado
Patrick Herrera
1
El mensaje de error aún permanece allí después de reconstruir el proyecto.
Kent Bull
3
"La clave parece estar en reconstruir el proyecto" me ayudó. El mensaje todavía está aquí, pero al menos la finalización automática de mis propiedades personalizadas en el application.propertiesarchivo comenzó a funcionar.
Ruslan Stelmachenko
1
Utilizo IDEA 2018.3 y tengo un enlace "Ocultar notificación" después del mensaje de texto. Parece que JetBrains hizo que la información se pudiera cerrar :-)
Marcus K.
18

Ninguna de las respuestas me funcionó. Si solo desea deshabilitar el mensaje, vaya a Preferencias de Intellij -> Editor -> General -> Apariencia, desmarque "Mostrar panel de metadatos de Spring Boot".

Sin embargo, también puede vivir con ese mensaje, si no le molesta demasiado, para asegurarse de no perderse ningún otro mensaje de metadatos de Spring Boot que pueda interesarle.

Lorenzo Polidori
fuente
4
La casilla de verificación está con IDEA 2017.2 en Preferencias -> Idiomas y marcos -> Primavera -> Spring Boot
oleh
15

Puede habilitar procesadores de anotaciones en IntelliJ a través de lo siguiente:

  1. Haga clic en Archivo
  2. Haga clic en Configuración
  3. En el pequeño cuadro de búsqueda de la esquina superior izquierda, busque "Procesadores de anotaciones".
  4. Marque "Habilitar procesamiento de anotaciones"
  5. Haga clic en Aceptar
Brandon S
fuente
10

Tuve el mismo problema. El problema es que el procesador de anotaciones Spring Boot genera el spring-configuration-metadata.jsonarchivo dentro de su /target/classes/META-INFcarpeta.

Si ha ignorado esta carpeta en IntelliJ como yo (porque qué diablos, ¿a quién le importan los archivos de clases?), Su IDE no indexará el archivo. Por lo tanto, no hay finalización y el mensaje molesto.

Simplemente elimínelo targetde la lista de archivos / carpetas ignorados, ubicada en Settings > Editor > File Types > Ignore files and folders.

Deathtiny
fuente
2
No veo targeten mis archivos ignorados. Está en mi .gitignorepensamiento.
Eric Francis
target/está excluido en mi caso y las cosas están funcionando bien.
Amr Mostafa
3
Se utilizará tanto si se excluye el objetivo como si no (soy el desarrollador responsable de esta función). Envíe un informe de error si puede reproducir este comportamiento incorrecto.
Yann Cébron
1
entonces, ¿qué versión de IntelliJ se comporta correctamente?
Marx
2
@ YannCébron lo mismo aquí, con gradle. El archivo se crea en ./build/classes/java/main/META-INF/spring-configuration-metadata.json, pero IntelliJ no lo tiene en cuenta. Si muevo manualmente el archivo json a src / main / resources / META-INF, funciona (las configuraciones ya no están amarillentas)
Costi Muraru
9

Ninguna de estas opciones funcionó para mí. Descubrí que la detección automática de los procesadores de anotaciones es bastante inestable. Terminé creando una sección de complementos en el archivo pom.xml que establece explícitamente los procesadores de anotaciones que se utilizan para el proyecto. La ventaja de esto es que no necesita depender de ninguna configuración 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>
Jason Turan
fuente
6
Este funcionó para mí. Usé en annotationProccessorPathslugar de definir clases individuales. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK
1
  1. Incluir una dependencia en spring-boot-configuration-processor
  2. Haga clic en "Volver a importar todos los proyectos de Maven" en el panel de Maven de IDEA
  3. Proyecto de reconstrucción
timomeinen
fuente
0

Para mí, otras respuestas no funcionaron. Tenía que ir a abrir Filesy hacer Invalidate caches and restarten Intellij. Después de eso, todo volvió a funcionar bien.

Septiembre GH
fuente