스프링 부트 구성 주석 프로세서를 다시 실행하여 생성된 메타데이터 업데이트
추가:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
나 my my mypom.xml per당intellij의경 / 고고고 。
"Spring Boot Configuration Annotation Processor를 다시 실행하여 생성된 메타데이터를 업데이트합니다."라고 표시됩니다.
요?intellij한테테 부탁? ???
이 링크 B.2 주석 프로세서를 사용하여 자체 메타 데이터 생성에는 지침이 없습니다.
다음의 순서에 따라 주세요.http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html
Annotation Processor를 재실행해야 한다는 메시지는 변경되지 않아도 항상 그대로 있기 때문에 약간 혼란스럽습니다.
중요한 것은 필요한 종속성을 추가하거나 속성을 변경한 후 프로젝트를 재구축하는 것입니다.이렇게 하고 YAML 파일로 돌아가면 모든 속성이 설정 클래스로 링크됩니다.
Maven 페인의 'Reimport All Maven Projects' 버튼을 클릭하여 대응하는 Java 클래스로의 링크를 인식하기 위해 .yaml 파일뷰를 취득해야 할 수도 있습니다.
이 옵션들 중 어느 것도 내게는 효과가 없었다.주석 프로세서의 자동 검출이 매우 불안정하다는 것을 알게 되었습니다.프로젝트에 사용되는 주석 프로세서를 명시적으로 설정하는 플러그인 섹션을 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>
나는 어떤 대답도 통하지 않았다.메시지를 비활성화하는 경우 Intelliz Preferences -> Editor -> General -> Affairance 순으로 이동하여 Show Spring Boot 메타데이터 패널 표시를 꺼줍니다.
다만, 그 메세지가 마음에 들지 않는 경우는, 그 메세지와 함께 생활할 수도 있습니다.따라서 관심이 있는 다른 Spring Boot 메타데이터 메시지를 놓치지 않도록 하기 위해서입니다.
다음을 통해 IntelliJ에서 주석 프로세서를 활성화할 수 있습니다.
- 파일 클릭
- [설정] 을 클릭합니다.
- 왼쪽 상단 구석에 있는 작은 검색 상자에서 "주석 프로세서"를 검색합니다.
- "주석 처리 사용"을 선택합니다.
- [확인] 을 클릭합니다.
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Boot 가 Spring Boot를 입니다.spring-configuration-metadata.json파일링하다/target/classes/META-INF폴더입니다.
저처럼 IntelliJ에서 이 폴더를 무시한 경우(클래스 파일은 누가 신경써요?) IDE에 의해 인덱싱되지 않습니다.그래서 미완료, 짜증나는 메시지.
제거만 하면 됩니다.target[ ignore files ]목록, 에 있는Settings > Editor > File Types > Ignore files and folders.
저는 다른 답변이 통하지 않았습니다.나는 문을 열러 가야 했다.Files하고 있다Invalidate caches and restart인텔리지에 있습니다.그 후, 모든 것이 잘 돌아갔습니다.
- spring-boot-configuration-processor 의존관계 포함
- IDEA의 [Maven]페인으로 [Remport All Maven Projects]을 클릭합니다.
- 프로젝트 재구축
에 대한 의존성을 포함시킨 경우spring-boot-configuration-processor에build.gradle:
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:2.4.1"
인텔리J의 캐시를 무효화하고 재기동하는 것 외에 나에게 효과가 있었던 것은
- 사이드 패널의 [Refresh]버튼
Reload All Gradle Projects - 그라들 태스크
Clean - 그라들 태스크
Build
난 그저 필요했을 뿐이야
@EnableConfigurationProperties({MY_PROPS_CLASS.class})
이 문제를 해결하는 데 도움이 되었습니다.
Gradle과 Kotlin을 사용했을 때도 비슷한 문제가 있었습니다.를 수정해야 합니다.build.gradle.kts다음 파일을 포함합니다.
//build.gradle.kts
plugins {
// ...
kotlin("kapt") version "1.5.31"
}
dependencies {
// ...
kapt("org.springframework.boot:spring-boot-configuration-processor")
}
그런 다음 주석을 생성하려면:
./gradlew kaptKotlin
참고 자료: https://spring.io/guides/tutorials/spring-boot-kotlin/ #_configuration_properties
저도 같은 문제가 있었어요.제 경우 스프링 부트 맵 플러그인이 빠져 있었습니다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
및 @Data Lombok 주석
@Configuration
@ConfigurationProperties("logging.web")
@Data
public class LoggingWebConfiguration {
// ...
}
물론 직접 getter/setter를 작성할 수도 있습니다.
그런 다음 프로젝트를 다시 가져오고 다시 컴파일해야 합니다.
위 중 어느 것도 내 경우에는 효과가 없었지만, 나를 가까이 오게 했다.결국 필요한 주석을 모두 명시적으로 정의함으로써 maven-compiler-plugin의 프로세서가 해결했습니다.제 경우, 이것은 Spring-Boot + Lombok + MapStruct였습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot-configuration-processor.version}</version>
</annotationProcessorPath>
<annotationProcessorPath>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</annotationProcessorPath>
<annotationProcessorPath>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</plugin>
그 전에는 application.properties의 Class +에서 항상 경고가 표시되었습니다.이러한 속성은 @ConfigurationProperties의 클래스에 정의되어 있어도 "unused"로 표시되어 있었습니다.
Idea의 maven 패널에서는 maven 라이프 사이클에서 cleaning과 컴파일이 가능했습니다.
언급URL : https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada
'source' 카테고리의 다른 글
| Vue를 사용하여 주제 변경 가능 (0) | 2022.11.01 |
|---|---|
| 명령줄에서 mysql 데이터베이스를 일반 텍스트(CSV) 백업으로 덤프합니다. (0) | 2022.11.01 |
| Javascript / Chrome - Webkit 검사기에서 개체를 코드로 복사하는 방법 (0) | 2022.10.23 |
| Java 문자열을 Date 개체로 변환하는 방법 (0) | 2022.10.23 |
| 문자열 PHP에서 후행 슬래시 제거 (0) | 2022.10.23 |