รัน Spring Boot Configuration Annotation Processor อีกครั้งเพื่ออัพเดตข้อมูลเมตาที่สร้างขึ้น


114

ฉันได้เพิ่ม:

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

ของฉันpom.xmlต่อintellijคำขอ / คำเตือน

ตอนนี้ฉันเห็น "เรียกใช้ Spring Boot Configuration Annotation Processor อีกครั้งเพื่ออัปเดตข้อมูลเมตาที่สร้างขึ้น"

ฉันจะทำสิ่งที่intellijขอให้ฉันทำได้อย่างไร?

ลิงค์นี้B.2 การสร้างข้อมูลเมตาของคุณเองโดยใช้ตัวประมวลผลคำอธิบายประกอบไม่มีคำแนะนำ

คำตอบ:


66

ทำตามคำแนะนำเหล่านี้ได้ผลสำหรับฉัน: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

ข้อความเกี่ยวกับการต้องรัน Annotation Processor อีกครั้งนั้นค่อนข้างสับสนเนื่องจากดูเหมือนว่ามันจะยังคงอยู่ตลอดเวลาแม้ว่าจะไม่มีอะไรเปลี่ยนแปลงก็ตาม

ดูเหมือนว่าคีย์จะสร้างโครงการขึ้นมาใหม่หลังจากเพิ่มการอ้างอิงที่ต้องการหรือหลังจากทำการเปลี่ยนแปลงคุณสมบัติใด ๆ หลังจากทำเช่นนั้นและกลับไปที่ไฟล์ YAML คุณสมบัติทั้งหมดของฉันตอนนี้เชื่อมโยงกับคลาสการกำหนดค่า

คุณอาจต้องคลิกปุ่ม 'Reimport All Maven Projects' ในบานหน้าต่าง Maven ด้วยเพื่อรับมุมมองไฟล์. yaml เพื่อจดจำลิงก์กลับไปยังคลาส Java ที่เกี่ยวข้อง


ไม่มีวิธีใดที่จะกำจัดข้อความได้?
OrangeDog

1
@OrangeDog ไม่ใช่ว่าหาได้ ฉันได้เรียนรู้ที่จะเพิกเฉย แต่คุณสามารถยื่นคำร้องขอคุณสมบัติกับ JetBrains ได้ตลอดเวลา คุณคงคิดว่าพวกเขาจะฉลาดขึ้นเล็กน้อยเกี่ยวกับเรื่องนี้และจะแสดงก็ต่อเมื่อพวกเขารู้ว่าไฟล์คลาสหรือไฟล์คอนฟิกูเรชันมีการเปลี่ยนแปลงจริงๆ
Patrick Herrera

1
ข้อความแสดงข้อผิดพลาดยังคงอยู่ที่นั่นหลังจากสร้างโครงการใหม่
Kent Bull

3
"คีย์ดูเหมือนจะสร้างโครงการใหม่" ช่วยฉัน ข้อความยังคงอยู่ที่นี่ แต่อย่างน้อยการเติมคุณสมบัติที่กำหนดเองในapplication.propertiesไฟล์โดยอัตโนมัติก็เริ่มทำงาน
Ruslan Stelmachenko

1
ฉันใช้ IDEA 2018.3 และมีลิงก์ "ซ่อนการแจ้งเตือน" หลังข้อความ ดูเหมือนว่า JetBrains ทำให้ข้อมูลใกล้เคียง :-)
Marcus K.

18

ไม่มีคำตอบใดที่เหมาะกับฉัน หากคุณต้องการปิดใช้งานข้อความให้ไปที่ Intellij Preferences -> Editor -> General -> Appearance ยกเลิกการเลือก "Show Spring Boot metadata panel"

อย่างไรก็ตามคุณสามารถใช้ชีวิตกับข้อความนั้นได้หากไม่รบกวนคุณมากเกินไปดังนั้นเพื่อให้แน่ใจว่าคุณจะไม่พลาดข้อความเมตาดาต้า Spring Boot อื่น ๆ ที่คุณอาจสนใจ


5
กล่องกาเครื่องหมายอยู่ใน IDEA 2017.2 ภายใต้ Preferences -> Languages ​​& Frameworks -> Spring -> Spring Boot
oleh

15

คุณสามารถเปิดใช้งานตัวประมวลผลคำอธิบายประกอบใน IntelliJ ผ่านทางต่อไปนี้:

  1. คลิกที่ไฟล์
  2. คลิกที่การตั้งค่า
  3. ในช่องค้นหาเล็ก ๆ ที่มุมซ้ายบนให้ค้นหา "Annotation Processors"
  4. เลือก "เปิดใช้งานการประมวลผลคำอธิบายประกอบ"
  5. คลิกตกลง

11

ฉันมีปัญหาเดียวกัน ปัญหาคือตัวประมวลผลคำอธิบายประกอบ Spring Boot สร้างspring-configuration-metadata.jsonไฟล์ภายใน/target/classes/META-INFโฟลเดอร์ของคุณ

ถ้าคุณเคยเพิกเฉยต่อโฟลเดอร์นี้ใน IntelliJ เหมือนฉัน (เพราะห่าใครสนใจไฟล์คลาส) ไฟล์จะไม่ถูกทำดัชนีโดย IDE ของคุณ ดังนั้นไม่มีการเสร็จสิ้นและข้อความที่น่ารำคาญ

เพียงแค่ลบออกtargetจากรายการไฟล์ / โฟลเดอร์ที่ละเว้นซึ่งอยู่ในSettings > Editor > File Types > Ignore files and folders.


2
ฉันไม่เห็นtargetในไฟล์ที่ถูกละเว้น มันอยู่ในของฉัน.gitignoreแม้ว่า
Eric Francis

target/ไม่รวมอยู่ในกรณีของฉันและสิ่งต่างๆทำงานได้ดี
Amr Mostafa

3
จะใช้ไม่ว่าเป้าหมายจะถูกยกเว้นหรือไม่ก็ตาม (ฉันเป็นนักพัฒนาที่รับผิดชอบฟีเจอร์นี้) โปรดรายงานข้อบกพร่องหากคุณสามารถทำซ้ำพฤติกรรมที่ไม่ถูกต้องนี้ได้
Yann Cébron

1
IntelliJ เวอร์ชันใดที่ทำงานได้อย่างถูกต้อง
Marx

2
@ YannCébronเหมือนกันที่นี่กับ gradle ไฟล์จะถูกสร้างขึ้นใน. /build/classes/java/main/META-INF/spring-configuration-metadata.json แต่ IntelliJ ไม่ได้นำมาพิจารณา หากฉันย้ายไฟล์ json ด้วยตนเองไปที่ src / main / resources / META-INF มันใช้งานได้ (การกำหนดค่าจะไม่เป็นสีเหลืองอีกต่อไป)
Costi Muraru

10

ตัวเลือกเหล่านี้ไม่ได้ผลสำหรับฉัน ฉันพบว่าการตรวจจับตัวประมวลผลคำอธิบายประกอบโดยอัตโนมัตินั้นค่อนข้างไม่สม่ำเสมอ ฉันลงเอยด้วยการสร้างส่วนปลั๊กอินในไฟล์ pom.xml ที่ตั้งค่าตัวประมวลผลคำอธิบายประกอบที่ใช้สำหรับโครงการอย่างชัดเจน ข้อดีของสิ่งนี้คือคุณไม่จำเป็นต้องพึ่งพาการตั้งค่า 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>

7
อันนี้ใช้ได้ผลสำหรับฉัน ฉันใช้annotationProccessorPathsแทนการกำหนดคลาสแต่ละคลาส <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
FıratKÜÇÜK

2
  1. รวมการพึ่งพา spring-boot-configuration-processor
  2. คลิก "Reimport All Maven Projects" ในบานหน้าต่าง Maven ของ IDEA
  3. สร้างโครงการใหม่

ไม่มีข้อเสนอแนะอื่นใดที่ใช้ได้ผลกับฉัน
Suresh T

2

สำหรับฉันคำตอบอื่นไม่ได้ผล ฉันต้องไปเปิดFilesและทำInvalidate caches and restartใน Intellij หลังจากนั้นทุกอย่างก็ทำงานได้ดีอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.