Riesegui il Processore di annotazione della configurazione di Spring Boot per aggiornare i metadati generati


99

Ho aggiunto:

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

al mio pom.xmlper ogni intellijrichiesta / avvertimento 's.

Ora vedo "Riesegui Spring Boot Configuration Annotation Processor per aggiornare i metadati generati".

Come faccio a fare quello intellijche mi chiede di fare?

Questo collegamento, B.2 Generazione dei propri metadati utilizzando il processore di annotazioni , non ha istruzioni.

Risposte:


60

Seguire queste istruzioni ha funzionato per me: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Quel messaggio sulla necessità di rieseguire il processore di annotazioni è un po 'confuso in quanto sembra che rimanga lì tutto il tempo anche se non è cambiato nulla.

La chiave sembra essere ricostruire il progetto dopo aver aggiunto la dipendenza richiesta o dopo aver apportato modifiche alle proprietà. Dopo averlo fatto e tornato al file YAML, tutte le mie proprietà erano ora collegate alle classi di configurazione.

Potrebbe essere necessario fare clic sul pulsante "Reimport All Maven Projects" nel riquadro Maven per ottenere la visualizzazione del file .yaml per riconoscere i collegamenti alla classe Java corrispondente.


Quindi non c'è modo di sbarazzarsi del messaggio?
OrangeDog

1
@ OrangeDog Non che riesco a trovare. Ho imparato a ignorarlo, ma potresti sempre presentare una richiesta di funzionalità a JetBrains. Immagineresti che potrebbero essere un po 'più intelligenti su questo e visualizzarlo solo se conoscono il file di classe o il file di configurazione è effettivamente cambiato
Patrick Herrera

1
Il messaggio di errore rimane ancora lì dopo aver ricostruito il progetto.
Kent Bull

3
"La chiave sembra essere ricostruire il progetto" mi ha aiutato. Il messaggio è ancora qui, ma almeno il completamento automatico delle mie proprietà personalizzate nel application.propertiesfile ha iniziato a funzionare.
Ruslan Stelmachenko,

1
Uso IDEA 2018.3 e ho un link "Nascondi notifica" dopo il messaggio di testo. Sembra che JetBrains abbia reso le informazioni chiudibili :-)
Marcus K.

18

Nessuna delle risposte ha funzionato per me. Se vuoi semplicemente disabilitare il messaggio, vai su Preferenze Intellij -> Editor -> Generale -> Aspetto, deseleziona "Mostra pannello metadati Spring Boot".

Tuttavia, puoi anche vivere con quel messaggio, se non ti infastidisce troppo, in modo da assicurarti di non perdere nessun altro messaggio di metadati di Spring Boot a cui potresti essere interessato.


4
La casella di controllo è con IDEA 2017.2 in Preferenze -> Lingue e framework -> Primavera -> Spring Boot
oleh

15

È possibile abilitare i processori di annotazione in IntelliJ tramite quanto segue:

  1. Fare clic su File
  2. Fare clic su Impostazioni
  3. Nella piccola casella di ricerca nell'angolo in alto a sinistra, cerca "Processori di annotazioni"
  4. Seleziona "Abilita elaborazione annotazioni"
  5. Fare clic su OK

10

Ho avuto lo stesso problema. Il problema è che il processore di annotazioni Spring Boot genera il spring-configuration-metadata.jsonfile all'interno della /target/classes/META-INFcartella.

Se ti capita di aver ignorato questa cartella in IntelliJ come me (perché che diamine, a chi importa dei file delle classi?), Il file non verrà indicizzato dal tuo IDE. Pertanto, nessun completamento e il messaggio fastidioso.

Basta rimuovere targetdall'elenco ignora file / cartelle, che si trova in Settings > Editor > File Types > Ignore files and folders.


2
Non vedo targetnei miei file ignorati. È nel mio .gitignorepensiero.
Eric Francis

target/è escluso nel mio caso e le cose funzionano bene.
Amr Mostafa

3
Verrà utilizzato indipendentemente dal fatto che il target sia escluso o meno (sono lo sviluppatore responsabile di questa funzionalità). Invia una segnalazione di bug se riesci a riprodurre questo comportamento sbagliato.
Yann Cébron

1
quindi quale versione di IntelliJ si comporta correttamente?
Marx

2
@ YannCébron stesso qui, con gradle. Il file viene creato in ./build/classes/java/main/META-INF/spring-configuration-metadata.json, ma IntelliJ non lo tiene in considerazione. Se sposto manualmente il file json in src / main / resources / META-INF funziona (le configurazioni non sono più ingiallite)
Costi Muraru

9

Nessuna di queste opzioni ha funzionato per me. Ho scoperto che il rilevamento automatico dei processori di annotazione è piuttosto instabile. Ho finito per creare una sezione plug-in nel file pom.xml che imposta esplicitamente i processori di annotazione utilizzati per il progetto. Il vantaggio di questo è che non è necessario fare affidamento su alcuna impostazione 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>

6
Questo ha funzionato per me. Ho usato annotationProccessorPathsinvece di definire le singole classi. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK

1
  1. Includere una dipendenza dal processore di configurazione dell'avvio a molla
  2. Fare clic su "Reimport All Maven Projects" nel pannello Maven di IDEA
  3. Ricostruisci il progetto

0

Per me, altre risposte non hanno funzionato. Dovevo andare ad aprire Filese fare Invalidate caches and restartsu Intellij. Dopodiché, tutto ha funzionato di nuovo bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.