問題タブ [maven-enforcer-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven-3 - プラグイン構成を検証するための Maven エンフォーサー ルール
有効な pom 内のすべてのプラグインの構成を検証するエンフォーサー ルールを構築することは、アーキテクチャ上実現可能ですか?
プラグイン構成は使用前に検証できないことは理解していますが、ビルド中にいつでも検証しないことは受け入れられません。
maven - Maven Enforcer プラグインを使用しているときに「依存関係収束エラー」を解決するにはどうすればよいですか?
maven-enforcer-plugin
小さな pomを使用してピックアップしようとしています (100 以上の依存関係を持つプロジェクト pom にジャンプする前に)。enforcer
プラグインを追加した後、Dependency convergence error
. pom.xml
ファイルを以下に示します
(見づらくて申し訳ありません)。
エンフォーサ プラグインを無効にせずにエラーを修正するにはどうすればよいですか。
基本的に、ルールの使用方法の背後にある概念を理解したいと思います。dependencyConvergence
このバージョンのpom.xmlのように、dependencyManagement で各非収束依存関係を明示的に宣言する必要があるということですか(dependencyManagement に依存関係を追加)。
直接の依存関係として追加し、別のバージョンの依存関係管理に追加したため、問題はspring-context
まだ存在します。
基本的に - エラーを修正することはできますが、ルールを明確に把握することはまだできません。
1 つを修正 - pom.xml - 依存関係管理のバージョンを、明示的に使用されているバージョンに更新しました。したがって、依存関係で明示的にバージョンを指定する必要はありません。ただし、これには、親 pom の依存関係管理にアクセスする必要があります。私の発言が正しければ、これは毎回の状況ではないかもしれません。
2 つのpom.xmlを修正- spring-security-web から spring-context を除外し、機能しました。しかし、実行する除外が多数ある場合、それは苦痛になります。
これが収束規則を使用する方法である場合は? 100 以上の依存関係と 100 以上の推移的な依存関係を持つエンタープライズ プロジェクトでは、部品表 (BOM) は非常に巨大になり、ビルドに時間がかかります。うーん。(同意します。使用するバージョンをより細かく制御し、<xyz.version> のようなプロパティを使用すると、アップグレードを簡単に行うことができます)。
誰かが収束に関するルールをリストアップできれば、非常に感謝しています。
java - Maven Enforcer 拡張機能
Maven Enforcer Extension を発見しました
https://maven.apache.org/enforcer/maven-enforcer-extension/usage.html
settings.xml
実際のプロジェクトの外、たとえば、Maven のインストール、またはコマンド ラインで構成できるかどうか疑問に思います。
拡張機能のロードは Maven インストールに JAR を追加することで実行できることがわかりましたが、まだどこかにルールを構成しているものがあります。
ユースケース: すべてのプロジェクトにいくつかのルールを適用したいと考えていますが、残念ながら一部のプロジェクトでは会社の親 POM を使用できません。1000 以上のプロジェクトがあるので、これを達成するためのプロジェクトに依存しない方法があれば素晴らしいと思います。
編集
構成ファイルの場所がハードコードされているようです:
そのため、おそらくプラグインをフォークするか、Maven ビルドの前に「その場で」ファイルを作成する必要があります。