Oluşturulan meta verileri güncellemek için Spring Boot Configuration Annotation Processor'ı yeniden çalıştırın


108

Ekledim:

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

Benim için pom.xmlbaşına intellij'ın isteği / uyarı.

Şimdi "Oluşturulan meta verileri güncellemek için Spring Boot Yapılandırması Ek Açıklama İşlemcisini Yeniden Çalıştır" görüyorum.

Benden yapmamı istediğini nasıl intellijyaparım?

Bu bağlantı, B.2 Açıklama işlemcisini kullanarak kendi meta verilerinizi oluşturma , talimatlara sahip değildir.

Yanıtlar:


65

Bu talimatları izlemek benim için çalıştı: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Ek Açıklama İşlemcisini Yeniden Çalıştırma zorunluluğuyla ilgili bu mesaj, hiçbir şey değişmemiş olsa bile her zaman orada kalıyor gibi göründüğü için biraz kafa karıştırıcı.

Anahtar, gerekli bağımlılığı ekledikten sonra veya herhangi bir özellik değişikliği yaptıktan sonra projeyi yeniden oluşturuyor gibi görünüyor. Bunu yaptıktan ve YAML dosyasına geri döndükten sonra, tüm özelliklerim artık yapılandırma sınıflarına bağlandı.

İlgili Java sınıfına geri bağlantıları tanımak üzere .yaml dosya görünümünü almak için Maven bölmesindeki 'Tüm Maven Projelerini Yeniden İçe Aktar' düğmesine tıklamanız gerekebilir.


Yani mesajdan kurtulmanın bir yolu yok mu?
OrangeDog

1
@OrangeDog Bulabildiğimden değil. Bunu görmezden gelmeyi öğrendim, ancak JetBrains'e her zaman bir özellik talebinde bulunabilirsiniz. Bu konuda biraz daha akıllı olabileceklerini ve yalnızca sınıf dosyasını veya yapılandırma dosyasının gerçekten değiştiğini bildiklerinde görüntüleyebileceklerini hayal edersiniz
Patrick Herrera

1
Hata mesajı, proje yeniden oluşturulduktan sonra hala orada kalır.
Kent Bull

3
"Anahtar projeyi yeniden inşa ediyor gibi görünüyor" bana yardımcı oldu. Mesaj hala burada, ancak en azından application.propertiesdosyadaki özel özelliklerimin otomatik tamamlanması çalışmaya başladı.
Ruslan Stelmachenko

1
IDEA 2018.3 kullanıyorum ve kısa mesajdan sonra "Bildirimi gizle" bağlantım var. Görünüşe göre JetBrains bilgiyi kapatılabilir yapmış gibi :-)
Marcus K.

18

Cevapların hiçbiri benim için işe yaramadı. Mesajı devre dışı bırakmak istiyorsanız, Intellij Tercihleri ​​-> Düzenleyici -> Genel -> Görünüm'e gidin, "Spring Boot meta veri panelini göster" seçeneğinin işaretini kaldırın.

Bununla birlikte, sizi çok fazla rahatsız etmiyorsa, bu mesajla da yaşayabilirsiniz, bu nedenle ilginizi çekebilecek diğer Spring Boot meta veri mesajlarını kaçırmadığınızdan emin olun.


5
Onay kutusu, Tercihler -> Diller ve Çerçeveler -> İlkbahar -> İlkbahar Önyükleme
oleh

15

IntelliJ'de açıklama işlemcilerini aşağıdakiler aracılığıyla etkinleştirebilirsiniz:

  1. Dosyaya tıklayın
  2. Ayarlar'a tıklayın
  3. Sol üst köşedeki küçük arama kutusunda "Ek Açıklama İşlemcileri" ni arayın.
  4. "Ek açıklama işlemeyi etkinleştir" i işaretleyin
  5. Tamam'ı tıklayın

11

Ben de aynı sorunu yaşadım. Sorun, Spring Boot ek açıklama işlemcisinin spring-configuration-metadata.jsondosyayı /target/classes/META-INFklasörünüzün içinde oluşturmasıdır .

Benim gibi IntelliJ'de bu klasörü yok sayarsanız (çünkü ne olursa olsun, sınıf dosyaları kimin umurunda?), Dosya IDE'niz tarafından indekslenmeyecektir. Bu nedenle, tamamlanma yok ve sinir bozucu mesaj.

Sadece içinde targetbulunan yok sayılacak dosyalar / klasörler listesinden kaldırın Settings > Editor > File Types > Ignore files and folders.


2
Görmezden geldiğim targetdosyalarımda göremiyorum . Benim içindedir .gitignorebile.
Eric Francis

target/benim durumumda hariç ve işler iyi gidiyor.
Amr Mostafa

3
Hedefin hariç tutulup tutulmadığına bakılmaksızın kullanılacaktır (bu özellikten sorumlu geliştiriciyim). Bu yanlış davranışı yeniden üretebiliyorsanız lütfen bir hata raporu gönderin.
Yann Cébron

1
Peki IntelliJ'in hangi sürümü düzgün çalışıyor?
Marx

2
@ YannCébron gradle ile aynı burada. Dosya ./build/classes/java/main/META-INF/spring-configuration-metadata.json içinde oluşturulur, ancak IntelliJ bunu hesaba katmaz. Eğer json dosyasını manuel olarak src / main / resources / META-INF konumuna
taşırsam

10

Bu seçeneklerin hiçbiri benim için işe yaramadı. Ek açıklama işlemcilerinin otomatik olarak algılanmasının oldukça kesintili olduğunu buldum. Proje için kullanılan açıklama işlemcilerini açıkça ayarlayan pom.xml dosyasında bir eklenti bölümü oluşturdum. Bunun avantajı, herhangi bir IDE ayarına güvenmenize gerek olmamasıdır.

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

7
Bu benim için çalıştı. annotationProccessorPathsBireysel sınıfları tanımlamak yerine kullandım . <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK

2

Benim için diğer cevaplar işe yaramadı. Intellij'de açıp Filesyapmak zorunda kaldım Invalidate caches and restart. Ondan sonra her şey tekrar iyi çalıştı.


1
  1. Yaylı önyükleme konfigürasyon işlemcisine bağımlılık ekleyin
  2. IDEA'nın Maven bölmesinde "Tüm Maven Projelerini Yeniden İçe Aktar" ı tıklayın
  3. Yeniden inşa projesi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.