web-dev-qa-db-ja.com

spring-boot-configuration-processorとは何ですか?なぜ人々はそこからライブラリを除外するのですか?なぜ依存ツリーでは見えないのですか?

前書き

そのため、jhipsterプロジェクトのgradleファイルに次の行があることに気付きました。

annotationProcessor ("org.springframework.boot:spring-boot-configuration-processor") {
        exclude group: 'com.vaadin.external.google', module: 'Android-json'
    }

https://github.com/jhipster/jhipster-sample-app-gradle/blob/9e9c3db8f3bedba4b1efd85ecb6ff3f12a5f596a/build.gradle#L230

Mavenの同じ構成を別のプロジェクトにも使用して、次の問題を解決しました: Maven一時的な依存関係(ライブラリ/ jar vaadin json)は除外されていません

ご質問

そして今、私は次の質問があります:

  • Spring-boot-configuration-processor依存関係は何をしますか?
  • プロセッサから依存関係を時々除外する必要があるのはなぜですか?
  • プロセッサが必ずしもmvn-dependencyツリーに表示されないのはなぜですか?
  • 依存関係を除外することが非常に難しい状況で、なぜプロセッサで除外が使用されるのですか?
11

spring-boot-configuration-processorは、@ConfigurationPropertiesで注釈が付けられたアプリケーション内のクラスに関するメタデータを生成する注釈プロセッサです。このメタデータは、IDE(Eclipse、IntelliJ、またはNetBeans)によって使用され、application.propertiesおよびapplication.yamlファイルの編集時にプロパティの自動補完とドキュメントを提供します。 Spring Bootのリファレンスドキュメントの 関連セクション で、これについてもう少し学ぶことができます。

Spring Boot 1.5.10以降、com.vaadin.external.google:Android-jsonspring-boot-configuration-processorの依存関係ではなくなったため、除外は不要になりました。

16
Andy Wilkinson

Spring-boot-configuration-processor依存関係は何をしますか?

ビルド内のライブラリをスキャンし、使用するプロパティを確認しますIDEに通知

プロセッサから依存関係を時々除外する必要があるのはなぜですか?

Mavenライブラリは時々衝突する可能性があります-あなたが参照するライブラリはJHipsterによって除外されました JHipsterの依存関係にある別のライブラリと一緒にクラスパス上でエラーが発生したため

プロセッサが必ずしもmvndependency:treeに表示されないのはなぜですか?

jhipster-sample-appで私のためにやってくれます。おそらく、 リンクされた問題に関するコメント を参照しているのは、Android-jsonライブラリーがツリーにないことを示しています。私はそこでそれについて尋ねました。

依存関係を除外するのが非常に難しい状況で、なぜプロセッサで除外が使用されるのですか?

これは 依存関係の衝突 の問題であり、実際にプロセッサがキーの依存関係を持ち込んでいる(または@ Andy Wilkinson が指摘しているcom.vaadin.external.google:Android-jsonはプロセッサで使用されなくなりました)

5
Ryan Dawson