balise de référentiel sous distributionManagement vs référentiels?

88

Je vois la repositorybalise sous l'élément parent ie distributionManagementet repositories. Quelle est la différence ?

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

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

Mon repositoryélément de compréhension sous l' distributionManagementélément spécifie où il déploiera les artefacts au moment du déploiement. Il n'entrera en image que pendant le mvn deploytemps de déploiement, pas pendant le mvn installtemps de construction. Droite?

repositoryL'élément sous l'élément référentiel spécifie d'où les dépendances doivent être récupérées. Cela n'entrera en image que pendant que mvn installpas pendant mvn deploy. Droite?

Émilly
la source

Réponses:

81

Vous avez tout à fait raison!

À partir de la référence POM :

Où, comme l' repositoriesélément spécifie dans le POM, l'emplacement et la manière dont Maven peut télécharger des artefacts distants pour une utilisation par le projet actuel, distributionManagementspécifie où (et comment) ce projet atteindra un référentiel distant lorsqu'il sera déployé. Les éléments du référentiel seront utilisés pour la distribution de snapshots si le snapshotRepository n'est pas défini.

  • Les référentiels déclarés sous l' distributionManagementélément seront utilisés pour le déploiement, c'est-à-dire lors de l'exécution mvn deploy.
  • L' repositoriesélément sera utilisé pour télécharger les dépendances du projet. La commande n'est pas nécessairement mvn installmais n'importe quelle commande qui oblige Maven à récupérer des artefacts à partir d'un référentiel.
Tunaki
la source