2015-11-02 8 views
43

Dodałem:Re-run Wiosna Boot Configuration Adnotacja Procesor aby zaktualizować wygenerowane metadane

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

do mojego pom.xml za intellij „s życzenie/ostrzeżenia.

Teraz widzę "Ponownie uruchom procesor adnotacji konfiguracji Spring Boot Configuration, aby zaktualizować wygenerowane metadane".

Jak mam zrobić to, o co mnie proszę: intellij?

Ten link, B.2 Generating your own meta-data using the annotation processor, nie zawiera instrukcji.

Odpowiedz

21

Po tych instrukcjach pracował dla mnie: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

To wiadomość o konieczności ponownie uruchomić procesor adnotacja jest nieco mylące, ponieważ wydaje się, że pozostanie tam przez cały czas, nawet jeśli nic się nie zmieniło.

Klucz wydaje się być przebudowywanie projektu po dodaniu wymaganej zależności lub po wprowadzeniu jakichkolwiek zmian właściwości. Po wykonaniu tej czynności i powrocie do pliku YAML wszystkie moje właściwości zostały teraz połączone z klasami konfiguracji.

Może być konieczne kliknięcie przycisku "Ponownie importuj wszystkie projekty Maven" w okienku Maven, a także uzyskanie widoku pliku .yaml, aby rozpoznać łącza z powrotem do odpowiedniej klasy Java.

+0

Więc nie ma sposobu na pozbycie się wiadomości? – OrangeDog

+1

@OrangeDog Nie, że mogę znaleźć. Nauczyłem się go ignorować, ale zawsze możesz złożyć wniosek o funkcję za pomocą JetBrains. Można sobie wyobrazić, że mogą być nieco mądrzejsi w tym i wyświetlać tylko, jeśli wiedzą, że plik klasy lub plik konfiguracyjny rzeczywiście się zmienił –

+0

Komunikat o błędzie nadal pozostaje po odtworzeniu projektu. –

5

Miałem ten sam problem. Problem polega na tym, że procesor adnotacji Spring Boot generuje plik spring-configuration-metadata.json w twoim folderze /target/classes/META-INF.

Jeśli zignorowałeś ten folder w IntelliJ jak ja (bo co do cholery, kogo obchodzą pliki klas?), Plik nie zostanie zaindeksowany przez twój IDE. Dlatego brak ukończenia i denerwujące przesłanie.

Wystarczy usunąć target z listy ignorowanych plików/folderów, znajdującej się w Settings > Editor > File Types > Ignore files and folders.

+1

Nie widzę "target" w moich ignorowanych plików. Jest jednak w moim '.gitignore'. –

+0

'target /' jest wykluczone w moim przypadku i wszystko działa poprawnie. –

+2

Będzie ono używane bez względu na to, czy cel jest wykluczony, czy nie (jestem programistą odpowiedzialnym za tę funkcję). Zgłoś błąd, jeśli możesz odtworzyć to złe zachowanie. –

10

Żadna z odpowiedzi nie zadziałała. Jeśli chcesz wyłączyć tę wiadomość, przejdź do preferencji Intellij -> Edytor -> Ogólne -> Wygląd, odznacz "Pokaż panel metadanych Spring Boot".

Można jednak też żyć z tym komunikatem, jeśli nie przeszkadza Ci zbyt wiele, tak aby upewnić się, że nie przegap żadnych innych wiadomości metadanych Wiosna Boot może być zainteresowany.

+2

Pole wyboru jest z IDEA 2017.2 w Preferencje -> Języki i struktury -> Wiosna -> Spring Boot – oleh

0

Żaden te opcje zadziałały dla mnie. Odkryłem, że automatyczne wykrywanie procesorów adnotacji jest dość niestabilne. W końcu utworzyłem sekcję wtyczki w pliku pom.xml, która jawnie ustawia procesory adnotacji, które są używane w projekcie. Zaletą tego jest to, że nie musisz polegać na żadnych ustawieniach 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> 
Powiązane problemy