Подтвердить что ты не робот

Разница между репозиторием и плагиатом

Мой 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>
4b9b3361

Ответ 1

Как сказал @otakun85, технической разницы нет вообще. Это для того, чтобы иметь различное поведение configurations-> для плагинов в отличие от обычных артефактов. Смотрите репозиторий против pluginRepository для более подробной информации.

Также проверьте архивы списков рассылки maven-users, это дает довольно хорошее объяснение этому.

Ответ 2

Maven будет разрешать зависимости плагина, используя настроенный pluginRepository. Другие зависимости артефактов (например, родительский pom) разрешаются с помощью repository. Примечание. Вещи, доступные в maven central, будут разрешены по умолчанию, поэтому обычно вам не нужно включать repository для них.

Например, если ваш pom.xml указывает родительский pom и зависимость плагина, которые существуют в одном и том же хранилище, вы все равно должны указать оба repository И pluginRepository. Если вы настроите только один, то maven будет жаловаться на ошибки "Unresolvable X".