Uruchom ponownie procesor adnotacji konfiguracji Spring Boot, aby zaktualizować wygenerowane metadane


101

Dodałem:

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

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

Teraz widzę komunikat „Uruchom ponownie procesor adnotacji konfiguracji Spring Boot, aby zaktualizować wygenerowane metadane”.

Jak mam zrobić to, o co intellijmnie proszą?

To łącze, B.2 Generowanie własnych metadanych za pomocą procesora adnotacji , nie zawiera instrukcji.

Odpowiedzi:


61

Wykonanie tych instrukcji zadziałało dla mnie: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Ten komunikat o konieczności ponownego uruchomienia procesora adnotacji jest nieco zagmatwany, ponieważ wydaje się, że pozostaje tam przez cały czas, nawet jeśli nic się nie zmieniło.

Wydaje się, że kluczem jest odbudowa 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 zaimportuj wszystkie projekty Mavena” w panelu Maven, aby wyświetlić widok pliku .yaml i rozpoznać łącza z powrotem do odpowiedniej klasy Java.


Więc nie ma sposobu, aby pozbyć się wiadomości?
OrangeDog,

1
@OrangeDog Nie mogę znaleźć. Nauczyłem się to ignorować, ale zawsze możesz złożyć wniosek o funkcję w JetBrains. Można sobie wyobrazić, że mogliby być nieco mądrzejsi i wyświetlać to tylko wtedy, gdy wiedzą, że plik klasy lub plik konfiguracyjny faktycznie się zmienił
Patrick Herrera

1
Komunikat o błędzie nadal tam jest po odbudowaniu projektu.
Kent Bull,

3
„Kluczem wydaje się być odbudowanie projektu”. Wiadomość wciąż tu jest, ale przynajmniej automatyczne uzupełnianie moich właściwości niestandardowych w application.propertiespliku zaczęło działać.
Ruslan Stelmachenko

1
Używam IDEA 2018.3 i po sms-ie mam link „Ukryj powiadomienie”. Wygląda na to, że JetBrains umożliwiło zamknięcie informacji :-)
Marcus K.

18

Żadna z odpowiedzi nie pomogła. Jeśli chcesz tylko wyłączyć komunikat, przejdź do Preferencje Intellij -> Edytor -> Ogólne -> Wygląd, odznacz „Pokaż panel metadanych Spring Boot”.

Możesz jednak również żyć z tą wiadomością, jeśli nie przeszkadza ci to zbytnio, więc upewnij się, że nie przegapisz żadnych innych wiadomości metadanych Spring Boot, które mogą Cię zainteresować.


4
Pole wyboru jest z IDEA 2017.2 w Preferencjach -> Języki i ramy -> Wiosna -> Spring Boot
oleh

15

Procesory adnotacji można włączyć w IntelliJ w następujący sposób:

  1. Kliknij Plik
  2. Kliknij Ustawienia
  3. W małym polu wyszukiwania w lewym górnym rogu wyszukaj „Procesory adnotacji”
  4. Zaznacz „Włącz przetwarzanie adnotacji”
  5. Kliknij OK

11

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

Jeśli zdarzyło ci się zignorować ten folder w IntelliJ, tak jak ja (bo co do cholery, kogo to obchodzą pliki klas?), Plik nie zostanie zindeksowany przez twoje IDE. Dlatego brak zakończenia i irytująca wiadomość.

Po prostu usuń targetz listy ignorowanych plików / folderów znajdującej się w Settings > Editor > File Types > Ignore files and folders.


2
Nie widzę targetw moich zignorowanych plikach. Jest w mojej .gitignoremyśli.
Eric Francis

target/jest wykluczony w moim przypadku i wszystko działa dobrze.
Amr Mostafa

3
Będzie używany niezależnie od tego, czy cel jest wykluczony, czy nie (jestem programistą odpowiedzialnym za tę funkcję). Prosimy o zgłoszenie błędu, jeśli możesz odtworzyć to nieprawidłowe zachowanie.
Yann Cébron

1
więc która wersja IntelliJ zachowuje się poprawnie?
Marx

2
@ YannCébron to samo tutaj, z gradle. Plik zostanie utworzony w ./build/classes/java/main/META-INF/spring-configuration-metadata.json, ale IntelliJ nie bierze go pod uwagę. Jeśli ręcznie przeniosę plik json do src / main / resources / META-INF, to działa (konfiguracje nie są już pożółkłe)
Costi Muraru

9

Żadna z tych opcji nie działała dla mnie. Odkryłem, że automatyczne wykrywanie procesorów adnotacji jest dość niestabilne. Skończyło się na utworzeniu sekcji wtyczki w pliku pom.xml, która wyraźnie ustawia procesory adnotacji 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>

6
Ten pracował dla mnie. Użyłem annotationProccessorPathszamiast definiowania poszczególnych klas. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK

1
  1. Uwzględnij zależność od procesora konfiguracji rozruchu sprężynowego
  2. Kliknij „Reimport All Maven Projects” w panelu Maven w IDEA
  3. Przebuduj projekt

0

Dla mnie inne odpowiedzi nie działały. Musiałem iść, aby otworzyć Filesi zrobić Invalidate caches and restartna Intellij. Potem wszystko znów działało dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.