Repository-Tag unter DistributionManagement vs Repositories?

83

Ich sehe das repositoryTag unter dem übergeordneten Element, dh distributionManagementund repositories. Was ist der Unterschied ?

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

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

Mein Verständniselement repositoryunter distributionManagementElement gibt an, wo die Artefakte zum Zeitpunkt der Bereitstellung bereitgestellt werden. Es wird nur während der mvn deployBereitstellungszeit angezeigt, nicht während der mvn installErstellungszeit. Richtig?

repositoryElement unter Repositorys Element gibt an, von wo Abhängigkeiten aufgenommen werden müssen. Es wird nur ins Bild kommen, während mvn installnicht während mvn deploy. Richtig?

emilly
quelle

Antworten:

75

Du hast es genau richtig!

Aus der POM-Referenz :

Wenn das repositoriesElement im POM den Speicherort und die Art und Weise angibt, in der Maven Remote-Artefakte zur Verwendung durch das aktuelle Projekt herunterladen kann, wird distributionManagementangegeben, wo (und wie) dieses Projekt bei seiner Bereitstellung in ein Remote-Repository gelangt. Die Repository-Elemente werden für die Snapshot-Verteilung verwendet, wenn das snapshotRepository nicht definiert ist.

  • Unter dem distributionManagementElement deklarierte Repositorys werden für die Bereitstellung verwendet, dh wenn sie ausgeführt werden mvn deploy.
  • Das repositoriesElement wird zum Herunterladen von Abhängigkeiten des Projekts verwendet. Der Befehl ist nicht unbedingt mvn installein Befehl, bei dem Maven Artefakte aus einem Repository abrufen muss.
Tunaki
quelle