Spring Boot Configuration Annotation Processor를 다시 실행하여 생성 된 메타 데이터를 업데이트합니다.


101

나는 추가했다 :

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

나에게 pom.xmlintellij의 요청 / 경고.

이제 "생성 된 메타 데이터를 업데이트하기 위해 Spring Boot Configuration Annotation Processor 다시 실행"이 표시됩니다.

어떻게해야하는지 intellij 해야 할 요청하는 이유는 무엇입니까?

이 링크, B.2 주석 프로세서를 사용하여 자체 메타 데이터 생성 에는 지침이 없습니다.

답변:


61

이 지침을 따르면 나를 위해 일했습니다. http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

Annotation Processor를 다시 실행해야한다는 메시지는 아무것도 변경되지 않은 경우에도 항상 그대로 유지되는 것처럼 보이기 때문에 약간 혼란 스럽습니다.

핵심은 필요한 종속성을 추가 한 후 또는 속성을 변경 한 후 프로젝트를 다시 빌드하는 것 같습니다. 이를 수행하고 YAML 파일로 돌아 가면 모든 속성이 이제 구성 클래스에 연결되었습니다.

Maven 창에서 'Reimport All Maven Projects'버튼을 클릭하여 .yaml 파일보기를 가져와 해당 Java 클래스에 대한 링크를 다시 인식해야 할 수도 있습니다.


그럼 메시지를 없앨 방법이 없나요?
OrangeDog 2015

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 메타 데이터 메시지를 놓치지 않도록하십시오.


4
확인란은 Preferences-> Languages ​​& Frameworks-> Spring-> Spring Boot
oleh

15

다음을 통해 IntelliJ에서 주석 프로세서를 활성화 할 수 있습니다.

  1. 파일을 클릭하십시오
  2. 설정을 클릭하십시오
  3. 왼쪽 상단의 작은 검색 상자에서 "주석 프로세서"를 검색합니다.
  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 2016 년

3
대상 제외 여부에 관계없이 사용됩니다 (이 기능은 개발자입니다). 이 잘못된 동작을 재현 할 수있는 경우 버그 보고서를 제출하십시오.
얀 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

9

이 옵션 중 어느 것도 나를 위해 일하지 않았습니다. 나는 주석 프로세서의 자동 감지가 매우 불안정하다는 것을 발견했습니다. 프로젝트에 사용되는 주석 프로세서를 명시 적으로 설정하는 플러그인 섹션을 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>

6
이것은 나를 위해 일했습니다. annotationProccessorPaths개별 클래스를 정의하는 대신 사용 했습니다. <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
Fırat KÜÇÜK

1
  1. spring-boot-configuration-processor에 대한 종속성 포함
  2. IDEA의 Maven 창에서 "Reimport All Maven Projects"를 클릭합니다.
  3. 프로젝트 재 구축

0

저에게는 다른 답변이 작동하지 않았습니다. Intellij 를 열고 실행 Files해야 Invalidate caches and restart했습니다. 그 후 모든 것이 다시 정상적으로 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.