Réexécutez le processeur d'annotation de configuration Spring Boot pour mettre à jour les métadonnées générées

99

J'ai ajouté:

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

à ma pom.xmlpar intellijdemande / l » avertissement.

Maintenant, je vois "Réexécuter le processeur d'annotation de configuration Spring Boot pour mettre à jour les métadonnées générées".

Comment faire ce que intellijje me demande de faire?

Ce lien, B.2 Générer vos propres métadonnées à l'aide du processeur d'annotations , ne contient pas d'instructions.

Eric Francis
la source

Réponses:

60

Suivre ces instructions a fonctionné pour moi: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Ce message concernant la nécessité de réexécuter le processeur d'annotations est un peu déroutant car il semble qu'il y reste tout le temps même si rien n'a changé.

La clé semble reconstruire le projet après avoir ajouté la dépendance requise ou après avoir apporté des modifications aux propriétés. Après avoir fait cela et retourné au fichier YAML, toutes mes propriétés étaient maintenant liées aux classes de configuration.

Vous devrez peut-être cliquer sur le bouton 'Réimporter tous les projets Maven' dans le volet Maven pour obtenir la vue du fichier .yaml afin de reconnaître les liens vers la classe Java correspondante.

Patrick Herrera
la source
Il n'y a donc aucun moyen de se débarrasser du message?
OrangeDog
1
@OrangeDog Pas que je puisse trouver. J'ai appris à l'ignorer, mais vous pouvez toujours déposer une demande de fonctionnalité avec JetBrains. Vous imaginez qu'ils pourraient être un peu plus intelligents à ce sujet et ne l'afficher que s'ils savent que le fichier de classe ou le fichier de configuration a réellement changé
Patrick Herrera
1
Le message d'erreur reste là après la reconstruction du projet.
Kent Bull
3
«La clé semble être de reconstruire le projet» m'a aidé. Le message est toujours là, mais au moins l'auto-complétion de mes propriétés personnalisées dans le application.propertiesfichier a commencé à fonctionner.
Ruslan Stelmachenko
1
J'utilise IDEA 2018.3 et j'ai un lien "Masquer la notification" après le message texte. On dirait que JetBrains a rendu l'information fermable :-)
Marcus K.
18

Aucune des réponses n'a fonctionné pour moi. Si vous souhaitez simplement désactiver le message, allez dans Préférences Intellij -> Editeur -> Général -> Apparence, décochez "Afficher le panneau de métadonnées Spring Boot".

Cependant, vous pouvez également vivre avec ce message, s'il ne vous dérange pas trop, afin de vous assurer de ne manquer aucun autre message de métadonnées Spring Boot qui pourrait vous intéresser.

Lorenzo Polidori
la source
4
La case à cocher est avec IDEA 2017.2 sous Préférences -> Langues et cadres -> Spring -> Spring Boot
oleh
15

Vous pouvez activer les processeurs d'annotation dans IntelliJ via les éléments suivants:

  1. Cliquez sur Fichier
  2. Cliquez sur Paramètres
  3. Dans le petit champ de recherche dans le coin supérieur gauche, recherchez "Processeurs d'annotation"
  4. Cochez "Activer le traitement des annotations"
  5. Cliquez sur OK
Brandon S
la source
10

J'ai eu le même problème. Le problème est que le processeur d'annotations Spring Boot génère le spring-configuration-metadata.jsonfichier dans votre /target/classes/META-INFdossier.

Si vous avez ignoré ce dossier dans IntelliJ comme moi (parce que diable, qui se soucie des fichiers de classes?), Le fichier ne sera pas indexé par votre IDE. Par conséquent, pas d'achèvement et le message ennuyeux.

Retirez simplement targetde la liste des fichiers / dossiers ignorés, située dans Settings > Editor > File Types > Ignore files and folders.

Deathtiny
la source
2
Je ne vois pas targetdans mes fichiers ignorés. C'est dans ma .gitignorepensée.
Eric Francis
target/est exclu dans mon cas et les choses fonctionnent bien.
Amr Mostafa
3
Il sera utilisé que la cible soit exclue ou non (je suis le développeur responsable de cette fonctionnalité). Veuillez déposer un rapport de bogue si vous pouvez reproduire ce comportement incorrect.
Yann Cébron
1
alors quelle version d'IntelliJ se comporte correctement?
Marx
2
@ YannCébron même ici, avec gradle. Le fichier est créé dans ./build/classes/java/main/META-INF/spring-configuration-metadata.json, mais IntelliJ ne le prend pas en compte. Si je déplace manuellement le fichier json vers src / main / resources / META-INF, cela fonctionne (les configurations ne sont plus jaunies)
Costi Muraru
9

Aucune de ces options n'a fonctionné pour moi. J'ai trouvé que la détection automatique des processeurs d'annotation était assez floconneuse. J'ai fini par créer une section plugin dans le fichier pom.xml qui définit explicitement les processeurs d'annotation utilisés pour le projet. L'avantage de ceci est que vous n'avez pas besoin de vous fier aux paramètres 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
la source
6
Celui-ci a fonctionné pour moi. J'ai utilisé annotationProccessorPathsau lieu de définir des classes individuelles. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK
1
  1. Inclure une dépendance sur spring-boot-configuration-processor
  2. Cliquez sur "Réimporter tous les projets Maven" dans le volet Maven d'IDEA
  3. Projet de reconstruction
Timomeinen
la source
0

Pour moi, les autres réponses n'ont pas fonctionné. Je devais aller ouvrir Fileset faire Invalidate caches and restartsur Intellij. Après cela, tout a bien fonctionné à nouveau.

Sept GH
la source