Ich versuche, in Spring Boot Vervollständigung für benutzerdefinierte Eigenschaften vorzunehmen.
Ich habe versucht, ein einfaches Projekt über IntelliJ IDEA 2016.3 zu erstellen:
1. Erstellt ein neues Gradle-Projekt mit Spring Boot Initializer (ich habe überhaupt nichts geprüft).
2. Erstellt eine neue Klasse Properties
.
3. Wenn ich es mit @ConfigurationProperties
kommentierte, wurde die nächste Benachrichtigung angezeigt: Die Dokumentation sagte, ich sollte meinem Projekt folgendes hinzufügen:
dependencies {
optional "org.springframework.boot:spring-boot-configuration-processor"
}
compileJava.dependsOn(processResources)
Danach habe ich versucht, ein Projekt neu zu erstellen und Anmerkungsprozessoren in den Einstellungen zu aktivieren, aber die Benachrichtigung ist nicht verschwunden. Completion funktioniert auch nicht (ich habe einen String my
erstellt).
Ich habe vergessen, propdeps-plugin hinzuzufügen. Ich erinnere mich jedoch, dass es auch mit dem Plugin für 2016 nicht funktioniert hat.3.3 Wie @CrazyCoder erwähnt, versuchen Sie, Gradle herunterzurüsten oder die neue Version 2017.1 herunterzuladen ( Details ).
Sie erhalten möglicherweise auch Re-run Spring Boot Configuration Annotation Processor to update generated metadata
, wenn Sie dieses Problem lösen. Klicken Sie dazu auf Refresh all Gradle projects
(im Seitenmenü von Gradle).
Ich hatte das gleiche Problem. Ich benutze die Idee 2017.2 und gradle 4.1,
dependencies {
optional "org.springframework.boot:spring-boot-configuration-processor"
}
Aber ich habe es geändert:
dependencies {
compile "org.springframework.boot:spring-boot-configuration-processor"
}
Und die Warnung ist weg.
In Version 2018.3 von IntelliJ habe ich dieses Problem (gemäß diese Dokumentation ) folgendermaßen gelöst:
In Gradle 4.5 und früheren Versionen sollte die Abhängigkeit in der compileOnly-Konfiguration deklariert werden, wie im folgenden Beispiel gezeigt:
dependencies { compileOnly "org.springframework.boot:spring-boot-configuration-processor" }
Ab Gradle 4.6 sollte die Abhängigkeit in der annotationProcessor-Konfiguration deklariert werden, wie im folgenden Beispiel gezeigt:
dependencies { annotationProcessor "org.springframework.boot:spring-boot-configuration-processor" }
Es passiert mir aus zwei Gründen in IDEA:
Laut Spring Boot docs ist die korrekte Konfiguration seit Gradle 4.6
dependencies {
annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-configuration-processor'
// ...
}
IntelliJ IDEA unterstützt jedoch (noch) nicht annotationProcessor
scope. Upvote IDEA-187868 wenn Sie auf dieses Problem aufmerksam machen möchten.
Ich hatte das gleiche Problem mit der IntelliJ-Version 2018.1.2. Ich musste auch die aktuelle Version des Spring-Boot-Configuration-Prozessors definieren, damit es funktioniert:
compile('org.springframework.boot:spring-boot-configuration-processor:2.0.1.RELEASE')
folgende arbeiten für mich:
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)