[解決済み] バージョンなしのMaven依存性
質問
最近、少し前に開発したプロジェクトの改良に取り組んでいて、以下のようなことを発見しました。pomファイル内の多くの依存関係は、バージョンが指定されずに行くが、それらは解決される。このプロジェクトは、1つのルートモジュールと2つのサブモジュールで構成されています。Aggregatorパターンが使われており、dependencyManagementセクションが全くない。上位プロジェクトは単に2つのモジュールを集約しているだけです。サブプロジェクトはそれを親として参照することはない。彼らは別の親を持っています。私が理解できないのは、サブプロジェクト自体も、その親(実はdependencyManagementもない)も、いくつかの依存関係にバージョンを指定しないことです。たとえば、次のようになります。
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>imap</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
誰かがこれを理解するのを助けることができますか?mavenは、いくつかのデフォルトの戦略でバージョニングを処理していますか? そのデフォルトの戦略は何ですか?
どのように解決するのですか?
OK、私は自分自身でそれに答えるつもりだと思います。もちろん、私はdependency:treeを見ましたが、私が言及したすべての依存関係は、ツリーの第一レベルのメンバーでした。私がすぐに気づかなかったことは、次のとおりです。
dependencyManagement
は親に存在しませんが、サブモジュールに存在し、さらに興味深いことに、それは含んでいます。
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>1.0.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Spring IO Platformを使ったことがなかったので、これは私にとって全く新しい概念です。結局のところ、このプラットフォームにはかなり多くの事前設定された依存関係が含まれています。 http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions
関連
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
無効な文字定数
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] Mavenプロジェクトにローカルのjarファイルを追加する方法は?
-
[解決済み] Mavenに最新バージョンの依存関係を使用するように指示するにはどうすればよいですか?
-
[解決済み] mavenで単一のテストメソッドを実行する
-
[解決済み] Mac OS XでのMavenのインストール
-
[解決済み】なぜjava.util.loggingを使用しないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
プロジェクトの依存関係を解決できない。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
JAVA_HOME環境変数が正しく定義されていない問題を解決する
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ