Разница между репозиторием и плагиатом
Мой Android-проект Maven pom.xml содержит следующие записи. Теперь все работает нормально. В чем разница между элементами <repositories>
и элементами <pluginRepositories>
.
<repositories>
<repository>
<id>my-repo</id>
<url>http://10.10.10.230:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>my-repo</id>
<name>my-repo</name>
<url>http://10.10.10.230:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
Ответы
Ответ 1
Как сказал @otakun85, технической разницы нет вообще. Это для того, чтобы иметь различное поведение configurations-> для плагинов в отличие от обычных артефактов. Смотрите репозиторий против pluginRepository для более подробной информации.
Также проверьте архивы списков рассылки maven-users, это дает довольно хорошее объяснение этому.
Ответ 2
Maven будет разрешать зависимости плагина, используя настроенный pluginRepository
. Другие зависимости артефактов (например, родительский pom) разрешаются с помощью repository
. Примечание. Вещи, доступные в maven central, будут разрешены по умолчанию, поэтому обычно вам не нужно включать repository
для них.
Например, если ваш pom.xml указывает родительский pom и зависимость плагина, которые существуют в одном и том же хранилище, вы все равно должны указать оба repository
И pluginRepository
. Если вы настроите только один, то maven будет жаловаться на ошибки "Unresolvable X".