@ConfigurationProperties 스프링 부팅 구성 주석 프로세서를 클래스 경로에서 찾을 수 없습니다.
Spring Boot에서 커스텀 속성을 완성하려고 합니다.
인텔리J IDEA 2016을 통해 심플한 프로젝트를 만들려고 했습니다.3:
- Spring Boot Initializer를 사용하여 새로운 Gradle 프로젝트를 작성했습니다(체크한 것은 전혀 없습니다).
- 를 만들었습니다.
Properties
.
가 주석을 달았을 때@ConfigurationProperties
서류상으로는 다음 사항을 프로젝트에 추가해야 한다고 되어 있었습니다.
dependencies {
optional "org.springframework.boot:spring-boot-configuration-processor"
}
compileJava.dependsOn(processResources)
그 후 프로젝트를 재구축하고 설정에서 주석 프로세서를 활성화하려고 했지만 알림이 사라지지 않았습니다.안 ).my
를 참조해 주세요.
저도 같은 문제가 있었어요.아이디어 2017.2와 gradle 4.1을 사용하고 있는데, 어떤 블로그에서는 다음과 같이 추가하라고 했습니다.
dependencies {
optional "org.springframework.boot:spring-boot-configuration-processor"
}
그런데 이렇게 바꿨어요.
dependencies {
compile "org.springframework.boot:spring-boot-configuration-processor"
}
그리고 경고는 사라졌습니다.
Spring Boot 문서에 따르면 Gradle 4.6 이후의 올바른 설정은 다음과 같습니다.
dependencies {
annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor'
// ...
}
는 IntelliJ IDEA에 대응하고 있습니다.annotationProcessor
193.3382(2019.3) 이후부터 적용되고 있습니다.IntelliJ IDEA 설정에서 주석 처리를 활성화하는 것을 잊지 마십시오.
사용하고 있는 에게 Intellij는 maven의 .더하는 것 같다annotationProcessorPaths
★★★★★★★★★★★★★★★★★를 통해maven-compiler-plugin
마침내 야수를 길들였다.
하세요.version
이치노당신의 효과적인 POM에 이미 있을 거라고 생각합니다.
이유: 맵 구조 주석 프로세서가 설정된 커스텀 부모 폼을 사용하고 있었습니다.annotationProcessorPaths
그 결과 IntelliJ는 다른 모든 주석 프로세서를 수동으로 지정하도록 요구하게 되었습니다.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.0.4.RELEASE</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
Maven 또는 Gradle을 사용하는 사용자에게는 spring-boot-configuration-processor에 종속성을 추가합니다.
메이븐:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Gradle 4.5 이전
dependencies {
compileOnly "org.springframework.boot:spring-boot-configuration-processor"
}
Gradle 4.6 이후
dependencies {
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
}
상세한 것에 대하여는, 「Annotation Processor 를 사용해 독자적인 메타데이터를 작성한다」(https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/appendix-configuration-metadata.html#configuration-metadata-annotation-processor 를 참조해 주세요.
IdEA에서는 다음 두 가지 이유로 인해 이 문제가 발생합니다.
- IDEA: Preferences -> Annotation Processors -> Annotation Processors -> Annotation Processors -> Enable(주석 처리 활성화)에서 설정이 선택되어 있는지 다시 확인합니다.
- 아이디어를 업데이트한 후 플러그인을 확인하고 업데이트하십시오.플러그인이 새로운 IDEA 버전과 호환되지 않을 수 있으므로 클릭하여 업데이트하십시오.
프롭스 플러그 인을 넣는 걸 깜빡했네요.다만, 2016.3의 플러그인으로도 동작하지 않았던 것을 기억하고 있기 때문에, @CrazyCoder가 말한 대로 Gradle을 다운그레이드 하거나 새로운 2017.1 버전(상세)을 다운로드해 주세요.
외에 ,, 신, 수, also, 신, 습, 습, 。Re-run Spring Boot Configuration Annotation Processor to update generated metadata
이문 언제 제제 결결? ???경우 [ ]를 합니다.Refresh all Gradle projects
(그래들 사이드 메뉴).
inmaven 프로젝트는 의존관계 spring-boot-configuration-processor를 추가하고 @EnableConfigurationProperties(AppProperties.class)로 메인클래스를 마킹하는 데 도움이 됩니다.
누가 좀 도와줄까?
IntelliJ 버전 2018.3에서는 이 문제를 다음과 같이 해결했습니다.
Gradle 4.5 이전 버전에서는 다음 예시와 같이 compile Only Configuration에서 의존관계를 선언해야 합니다.
dependencies { compileOnly "org.springframework.boot:spring-boot-configuration-processor" }
Gradle 4.6 이후에서는 다음 예시와 같이 annotationProcessor 설정에서 의존관계를 선언해야 합니다.
dependencies { annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" }
Kotlin 프로젝트의 경우 Gradle 4.6 이후 작업 구성은 주석 프로세서를 사용합니다.
apply plugin: "kotlin-kapt"
dependencies {
kapt("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion")
compileOnly("org.springframework.boot:spring-boot-configuration-processor:$springBootVersion")
}
다음과 같이 @ConfigurationProperties 주석을 사용하는 클래스를 메인클래스에서 언급해야 합니다.
@EnableConfigurationProperties(AppProperties.class)
@ConfigurationProperties를 사용하는 속성 구성 클래스는 다음과 같습니다.
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "app")
public class AppProperties {
String name;
String id;
}
메인 클래스는 이렇게 될 것이다.
import com.auth2.demo.config.AppProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@SpringBootApplication
@EnableConfigurationProperties(AppProperties.class)
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
인텔리J 버전 2018.1.2에서도 같은 문제가 있었습니다.spring-boot-configuration-processor의 실제 버전도 정의해야 했습니다.
compile('org.springframework.boot:spring-boot-configuration-processor:2.0.1.RELEASE')
다음 작업을 수행할 수 있습니다.
buildscript {
repositories {
jcenter()
maven { url 'https://repo.jenkins-ci.org/public/' }
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath "io.spring.gradle:propdeps-plugin:0.0.9.RELEASE"
}
}
...
apply plugin: 'propdeps'
apply plugin: 'propdeps-eclipse'
apply plugin: 'propdeps-idea'
...
dependencyManagement {
imports {
mavenBom 'org.springframework.boot:spring-boot-starter-parent:2.0.0.RELEASE'
}
}
...
dependencies {
compile "org.springframework.boot:spring-boot-starter"
compile "org.springframework.boot:spring-boot-starter-actuator"
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" // for @ConfigurationProperties, make sure compileJava.dependsOn(processResources)
...
}
compileJava.dependsOn(processResources)
Spring Boot 문서에 따르면 Gradle 4.5 이전 버전의 올바른 설정은 다음과 같습니다.
dependencies {
compileOnly group: 'org.springframework.boot', name: 'spring-boot-configuration-processor'
// ...
}
Spring의 웹사이트에는 그것을 작동시키는 방법에 대한 훌륭한 설명이 포함된 튜토리얼이 있다.아래의 "설정 속성" 섹션에 있는 단계를 따르십시오.
다른 도 있습니다.실행입니다.실행./gradlew kaptKotlin
수동으로 조작할 수 있습니다.
클래스2021년 3월 IDEA는 Kotlin 속성 클래스 위에 경고를 표시합니다. 하다에서 를 할 수 있습니다..properties
Kotlin 속성 클래스로 파일을 보내지만 그 반대는 아닙니다.
https://spring.io/guides/tutorials/spring-boot-kotlin/ 에서 "Configuration Properties" 부분까지 스크롤 다운합니다.
또는 GitHub의 같은 페이지:
언급URL : https://stackoverflow.com/questions/42839126/configurationproperties-spring-boot-configuration-annotation-processor-not-foun
'programing' 카테고리의 다른 글
Angularjs: input [ text ]ngChange는 값이 변경되는 동안 실행됩니다. (0) | 2023.03.22 |
---|---|
WordPress 데이터베이스의 어디에 게시된 이미지 링크가 저장됩니까? (0) | 2023.03.22 |
PHP: strlen이 바이트 길이 대신 문자 길이를 반환합니다. (0) | 2023.03.22 |
@DataJpaTest용 Spring Boot 1.4.1의 내장 H2 DB에 mode=syslog를 추가하는 방법은 무엇입니까? (0) | 2023.03.22 |
RefCursor 반환 유형을 사용하여 Oracle 저장 프로시저를 테스트하는 방법 (0) | 2023.03.17 |