Chạy lại Bộ xử lý chú thích cấu hình khởi động mùa xuân để cập nhật siêu dữ liệu đã tạo


99

Tôi đã thêm:

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

để tôi pom.xmlmỗi intellijrequest / cảnh báo 's.

Bây giờ tôi đang thấy "Chạy lại Bộ xử lý chú thích cấu hình khởi động mùa xuân để cập nhật siêu dữ liệu đã tạo".

Làm thế nào để làm những gì intellijđang yêu cầu tôi làm?

Liên kết này, B.2 Tạo siêu dữ liệu của riêng bạn bằng bộ xử lý chú thích , không có hướng dẫn.

Câu trả lời:


60

Làm theo các hướng dẫn sau đã hiệu quả với tôi: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Thông báo đó về việc phải chạy lại Trình xử lý chú thích hơi khó hiểu vì nó xuất hiện ở đó mọi lúc ngay cả khi không có gì thay đổi.

Chìa khóa dường như đang xây dựng lại dự án sau khi thêm phần phụ thuộc bắt buộc hoặc sau khi thực hiện bất kỳ thay đổi thuộc tính nào. Sau khi làm điều đó và quay trở lại tệp YAML, tất cả các thuộc tính của tôi bây giờ đã được liên kết với các lớp cấu hình.

Bạn có thể cần phải nhấp vào nút 'Nhập lại tất cả các dự án Maven' trong ngăn Maven cũng như để có được chế độ xem tệp .yaml để nhận ra các liên kết trở lại lớp Java tương ứng.


Vậy không có cách nào để loại bỏ tin nhắn?
OrangeDog

1
@OrangeDog Không phải tôi có thể tìm thấy. Tôi đã học cách bỏ qua nó nhưng bạn luôn có thể gửi yêu cầu tính năng với JetBrains. Bạn sẽ tưởng tượng rằng họ có thể là một chút thông minh hơn về vấn đề này và chỉ hiển thị nó nếu họ biết tập tin lớp học hoặc các tập tin cấu hình đã thực sự thay đổi
Patrick Herrera

1
Thông báo lỗi vẫn ở đó sau khi xây dựng lại dự án.
Kent Bull

3
"Chìa khóa dường như đang xây dựng lại dự án" đã giúp tôi. Thông báo vẫn còn ở đây, nhưng ít nhất thì tính năng tự động hoàn thành các thuộc tính tùy chỉnh của tôi trong application.propertiestệp đã bắt đầu hoạt động.
Ruslan Stelmachenko

1
Tôi sử dụng IDEA 2018.3 và có liên kết "Ẩn thông báo" sau tin nhắn văn bản. Có vẻ như JetBrains đã đóng thông tin :-)
Marcus K.

18

Không có câu trả lời nào phù hợp với tôi. Nếu bạn chỉ muốn vô hiệu hóa thông báo, hãy chuyển đến Tùy chọn Intellij -> Trình chỉnh sửa -> Chung -> Giao diện, bỏ chọn "Hiển thị bảng siêu dữ liệu Spring Boot".

Tuy nhiên, bạn cũng có thể sống với thông báo đó, nếu nó không làm phiền bạn quá nhiều, vì vậy để đảm bảo bạn không bỏ lỡ bất kỳ thông báo siêu dữ liệu Spring Boot nào khác mà bạn có thể quan tâm.


4
Hộp kiểm có IDEA 2017.2 trong Preferences -> Languages ​​& Frameworks -> Spring -> Spring Boot
oleh

15

Bạn có thể bật bộ xử lý chú thích trong IntelliJ thông qua cách sau:

  1. Nhấp vào Tệp
  2. Nhấp vào Cài đặt
  3. Trong hộp tìm kiếm nhỏ ở góc trên bên trái, tìm kiếm "Bộ xử lý chú thích"
  4. Chọn "Bật xử lý chú thích"
  5. Bấm OK

10

Tôi gặp vấn đề tương tự. Vấn đề là bộ xử lý chú thích Spring Boot tạo spring-configuration-metadata.jsontệp bên trong /target/classes/META-INFthư mục của bạn .

Nếu bạn tình cờ bỏ qua thư mục này trong IntelliJ như tôi (vì cái quái gì vậy, ai quan tâm đến tệp lớp chứ?), Tệp sẽ không được lập chỉ mục bởi IDE của bạn. Do đó, không có hoàn thành và thông báo khó chịu.

Chỉ cần xóa targetkhỏi danh sách tệp / thư mục bỏ qua, nằm trong Settings > Editor > File Types > Ignore files and folders.


2
Tôi không thấy targettrong các tệp bị bỏ qua của mình. Nó nằm trong .gitignoremặc dù của tôi .
Eric Francis

target/được loại trừ trong trường hợp của tôi và mọi thứ đang hoạt động tốt.
Amr Mostafa,

3
Nó sẽ được sử dụng cho dù target có bị loại trừ hay không (tôi là nhà phát triển chịu trách nhiệm về tính năng này). Vui lòng gửi báo cáo lỗi nếu bạn có thể tái tạo hành vi sai trái này.
Yann Cébron

1
vậy phiên bản nào của IntelliJ hoạt động đúng cách?
Marx

2
@ YannCébron giống nhau ở đây, với gradle. Tệp được tạo trong ./build/classes/java/main/META-INF/spring-configuration-metadata.json, nhưng IntelliJ không tính đến nó. Nếu tôi di chuyển tệp json theo cách thủ công sang src / main / resources / META-INF thì nó hoạt động (các cấu hình không còn bị ố vàng nữa)
Costi Muraru

9

Không có tùy chọn nào trong số này phù hợp với tôi. Tôi nhận thấy rằng tính năng tự động phát hiện bộ xử lý chú thích khá lỏng lẻo. Tôi đã kết thúc việc tạo một phần plugin trong tệp pom.xml để thiết lập rõ ràng các bộ xử lý chú thích được sử dụng cho dự án. Ưu điểm của việc này là bạn không cần phải dựa vào bất kỳ cài đặt IDE nào.

<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
Điều này đã làm việc cho tôi. Tôi đã sử dụng annotationProccessorPathsthay vì xác định các lớp riêng lẻ. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK

1
  1. Bao gồm phần phụ thuộc vào spring-boot-configuration-processor
  2. Nhấp vào "Nhập lại tất cả các dự án Maven" trong ngăn Maven của IDEA
  3. Xây dựng lại dự án

0

Đối với tôi, các câu trả lời khác không hoạt động. Tôi phải mở Filesvà làm Invalidate caches and restarttrên Intellij. Sau đó, mọi thứ hoạt động tốt trở lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.