2015-11-02 2 views
43

Ich habe hinzugefügt:Re-run Frühling Boot Configuration Annotation Prozessor zur Aktualisierung von Metadaten erzeugt

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

meine pom.xml pro intellij ‚s Anfrage/Warnung.

Jetzt sehe ich "Reverse Spring Boot Configuration Annotation Processor zum Aktualisieren der generierten Metadaten".

Wie mache ich was intellij fragt mich zu tun?

Dieser Link, B.2 Generating your own meta-data using the annotation processor, hat keine Anweisungen.

Antwort

21

diese Anleitung Im Anschluss arbeitete für mich: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Diese Nachricht darüber, dass der Annotation-Prozessor ist ein wenig verwirrend, da es scheint, es bleibt dort die ganze Zeit, auch wenn du nichts geändert hat zu wiederholen.

Der Schlüssel scheint das Projekt neu zu erstellen, nachdem die erforderliche Abhängigkeit hinzugefügt wurde, oder nachdem Eigenschaftsänderungen vorgenommen wurden. Danach wurden alle meine Eigenschaften mit den Konfigurationsklassen verknüpft.

Möglicherweise müssen Sie auch im Maven-Bereich auf die Schaltfläche "Alle Maven-Projekte erneut importieren" klicken, damit die .yaml-Dateiansicht die Verknüpfungen zur entsprechenden Java-Klasse erkennt.

+0

So gibt es keine Möglichkeit, die Nachricht loszuwerden? – OrangeDog

+1

@OrangeDog Nicht das ich finden kann. Ich habe gelernt, es zu ignorieren, aber Sie könnten immer eine Feature-Anfrage bei JetBrains einreichen. Sie könnten sich vorstellen, dass sie etwas schlauer sein könnten und es nur anzeigen, wenn sie wissen, dass die Klassendatei oder die Konfigurationsdatei tatsächlich geändert wurde. –

+0

Die Fehlermeldung bleibt auch nach dem Neuaufbau des Projekts bestehen. –

5

Ich hatte das gleiche Problem. Das Problem besteht darin, dass der Spring Boot-Annotationsprozessor die Datei spring-configuration-metadata.json in Ihrem Ordner /target/classes/META-INF generiert.

Wenn Sie diesen Ordner in IntelliJ wie ich ignoriert haben (denn was zum Teufel, wer kümmert sich um Klassen Dateien?), Wird die Datei nicht von Ihrer IDE indiziert werden. Daher keine Fertigstellung und die lästige Nachricht.

Entfernen Sie einfach target aus der Liste Ignorieren von Dateien/Ordnern unter Settings > Editor > File Types > Ignore files and folders.

+1

Ich sehe 'target' nicht in meinen ignorierten Dateien. Es ist jedoch in meinem '.gitignore'. –

+0

'Ziel /' ist in meinem Fall ausgeschlossen und die Dinge funktionieren gut. –

+2

Es wird verwendet, ob Ziel ausgeschlossen ist oder nicht (ich bin der Entwickler verantwortlich für diese Funktion). Bitte melden Sie einen Fehlerbericht, wenn Sie dieses falsche Verhalten reproduzieren können. –

10

Keine der Antworten funktionierte für mich. Wenn Sie die Nachricht nur deaktivieren möchten, gehen Sie zu Intellij Einstellungen -> Editor -> Allgemein -> Darstellung und deaktivieren Sie "Spring Boot Metadata Panel anzeigen".

Sie können jedoch auch mit dieser Botschaft leben, wenn es Sie zu viel nicht stört, so sicherzustellen, dass Sie nicht verpassen keine andere Spring-Boot-Metadaten Nachrichten, die Sie interessieren könnten.

+2

Das Kontrollkästchen ist mit IDEA 2017.2 unter Einstellungen -> Sprachen & Frameworks -> Spring -> Spring Boot – oleh

0

Keines Diese Optionen funktionierten für mich. Ich habe festgestellt, dass die automatische Erkennung von Annotationsprozessoren ziemlich flockig ist. Ich habe schließlich einen Plugin-Abschnitt in der pom.xml-Datei erstellt, der explizit die Annotation-Prozessoren festlegt, die für das Projekt verwendet werden. Der Vorteil ist, dass Sie sich nicht auf irgendwelche IDE-Einstellungen verlassen müssen.

<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> 
Verwandte Themen