1. ホーム
  2. maven

[解決済み] repository tag under distributionManagement vs repositories?

2022-08-29 04:30:14

質問

なるほど repository タグは親要素、すなわち distributionManagementrepositories . 何が違うのでしょうか?

<distributionManagement>
    <repository>
        <id>...</id>
        <name>...</name>
        <url>...</url>
    </repository>
</distributionManagement> 

<repositories>
    <repository>
        <id>...</id>
        <name>...</name>
        <layout>default</layout>
        <url>...</url>
    </repository>
</repositories>

私の理解 repository 要素の下に distributionManagement 要素は、デプロイ時にアーティファクトを配置する場所を指定します。これは mvn deploy の間だけ、つまりデプロイメントの間ではなく mvn install すなわちビルド時間です。そうですよね?

repository 要素は、どこから依存性を取得する必要があるかを指定します。これは mvn install の間ではなく mvn deploy . ですよね?

どのように解決するのですか?

まさにその通りです!

から POMリファレンス :

ここで repositories 要素は、Maven が現在のプロジェクトで使用するリモートアーティファクトをダウンロードする場所と方法を POM で指定します。 distributionManagement は、このプロジェクトがデプロイされたときに、リモートリポジトリに到達する場所(および方法)を指定します。snapshotRepository が定義されていない場合、リポジトリ要素はスナップショット配布のために使用されます。

  • の下で宣言されたリポジトリは distributionManagement 要素の下で宣言されたリポジトリはデプロイメントのために使用されます。 mvn deploy .
  • repositories 要素はプロジェクトの依存関係をダウンロードするために使用されます。コマンドは必ずしも mvn install である必要はありませんが、リポジトリからアーティファクトをフェッチするために Maven を必要とする任意のコマンドです。