1

Antの経験はありますが、Mavenは初めてです。依存関係をダウンロードするプロセスを理解しようとしています。2つのリポジトリを定義したとしましょう。

そして1つの依存関係:

  • 依存
    • groupId:org.mystuff
    • ArtifactId:mystuff-コア

私の質問:

  1. 依存関係のgroupIdは、リポジトリURLの1つのサブパス(たとえば、http: //repo-one.com/repos/org/mystuff)として見つける必要があると思います。そうですか?

  2. その場合、artifactIdは追加のサブパスとして検索されます(例:http://repo-one.com/repos/org/mystuff/mystuff-core ) 。そうですか?

  3. 上記の両方に「はい」の場合、http://repo-one.com/repos/org/mystuff/mystuff-coreとhttp://repo-two.com/repos/org/の両方がある場合はどうなりますmystuff / mystuff-core?リストされている最初のリポジトリが勝ちますか?

  4. 完全に軌道に乗っていない場合、リポジトリへの依存関係を見つけるためのプロセスは何ですか?

おそらくお分かりのように、私は既存のPOMを見て、それがどのように機能するかを理解しようとしています。Mavenサイトのドキュメントを確認しましたが、これまでのところ、依存関係がリポジトリにどのようにマッピングされているかを明示的に示しているものはありません。

4

1 に答える 1

2

Q1。およびQ2。あなたが正しいです。

より正確には、デフォルトで(つまり、リポジトリレイアウトが非標準レイアウトに再定義されていない場合):アーティファクトは次の場所にあります。<REPO_URL>/${groupId_with_dot_replaced_by_subdir}/${artifactId}/${version}/${artifactId}-${version}.${extension}

Q3。はい、アーティファクトを含む最初のリポジトリが優先されます。ご了承ください

  • アーティファクトがSNAPSHOTでなく、すでにローカルリポジトリにある場合、アーティファクトは再度ダウンロードされません。
  • アーティファクトがSNAPSHOTであり、更新ポリシーで指定された時間よりも長い時間ローカルリポジトリにある場合:アーティファクトは再度ダウンロードされます。

Q4。これは、Mavenリポジトリのレイアウトを説明するブログ投稿へのリンクです

于 2013-03-27T14:57:35.377 に答える