webentwicklung-frage-antwort-db.com.de

@ConfigurationProperties Spring Boot-Konfigurationsanmerkung Prozessor wurde nicht im Klassenpfad gefunden

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:  notification 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).

28
Feeco

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).

7
Feeco

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.

13
Icex

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"
}
4
AR1

Es passiert mir aus zwei Gründen in IDEA:

  1. Überprüfen Sie, ob Ihre Einstellung in IDEA ausgewählt (aktiviert) ist: Einstellungen-> Anmerkungsprozessoren-> Anmerkungsverarbeitung aktivieren.
  2. Überprüfen Sie nach dem Update Ihrer Idea Ihre Plugins und aktualisieren Sie sie. Es kann vorkommen, dass Plugins nicht mehr mit Ihrer neuen IDEA Version) kompatibel sind. Klicken Sie also einfach auf, um sie zu aktualisieren.
2

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.

2
naXa

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') 
1
vargapeti

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)
0
Dirk Hoffmann