Тег репозитория в разделе DistributionManagement vs Repositories?

88

Я вижу repositoryтег под родительским элементом, т.е. distributionManagementи repositories. Какая разница ?

<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. Правильно?

Эмили
источник

Ответы:

81

Вы все сделали правильно!

Из ссылки на POM :

Если repositoriesэлемент указывает в POM расположение и способ, которым Maven может загружать удаленные артефакты для использования в текущем проекте, distributionManagementуказывает, где (и как) этот проект попадет в удаленный репозиторий при его развертывании. Элементы репозитория будут использоваться для распространения снимков, если snapshotRepository не определен.

  • Репозитории, объявленные в distributionManagementэлементе, будут использоваться для развертывания, т. Е. При запуске mvn deploy.
  • repositoriesЭлемент будет использоваться для загрузки зависимостей проекта. Команда не обязательно, mvn installно любая команда, которая требует, чтобы Maven извлекал артефакты из репозитория.
Тунаки
источник