В стартовый набор входят proxy-репозиторий maven-central (зеркало Maven Central)
и hosted-репозитории maven-releases (релизы) и maven-snapshots (snapshot-версии).
Подключение к proxy
Направьте Maven на зеркало в ~/.m2/settings.xml:
<settings>
<mirrors>
<mirror>
<id>galleon-central</id>
<url>https://<GALLEON_HOST>/repository/maven-central</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>Если анонимный доступ к репозиторию выключен,
добавьте блок <server> с тем же id, что у зеркала, и вашими учётными данными —
по образцу из раздела Публикация.
Публикация
Укажите репозиторий назначения в pom.xml и учётные данные в settings.xml —
значения id в обоих блоках должны совпадать:
<!-- pom.xml -->
<distributionManagement>
<repository>
<id>galleon-releases</id>
<url>https://<GALLEON_HOST>/repository/maven-releases</url>
</repository>
</distributionManagement><!-- ~/.m2/settings.xml -->
<settings>
<servers>
<server>
<id>galleon-releases</id>
<username><USERNAME></username>
<password><PASSWORD></password>
</server>
</servers>
</settings>mvn deployПубликация из Gradle:
publishing {
repositories {
maven {
url = uri("https://<GALLEON_HOST>/repository/maven-releases")
credentials {
username = "<USERNAME>"
password = "<PASSWORD>"
}
}
}
}Использование опубликованных артефактов
Зеркало покрывает только Maven Central,
поэтому hosted-репозитории подключаются к сборке отдельными записями —
в pom.xml или в профиле settings.xml:
<repositories>
<repository>
<id>galleon-releases</id>
<url>https://<GALLEON_HOST>/repository/maven-releases</url>
</repository>
<repository>
<id>galleon-snapshots</id>
<url>https://<GALLEON_HOST>/repository/maven-snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>Для Gradle:
repositories {
maven { url = uri("https://<GALLEON_HOST>/repository/maven-releases") }
maven { url = uri("https://<GALLEON_HOST>/repository/maven-snapshots") }
}Учётные данные — те же блоки <server> (Maven) или credentials (Gradle), что и при публикации.
Релизы и snapshot-версии
Повторная публикация существующей релизной версии отклоняется с кодом 409:
релизы неизменяемы.
Каждая загрузка snapshot-версии получает метку времени (YYYYMMDD.HHMMSS-N)
и попадает в maven-metadata.xml; запрос версии X-SNAPSHOT отдаёт последнюю сборку.
Особенности
Особенности формата:
maven-metadata.xmlгенерируется сервером автоматически — публиковать его не нужно.- Hosted-репозиторий отдаёт только те checksum-файлы, которые загрузил клиент: Maven по умолчанию публикует
.sha1и.md5. Чтобы публиковать все четыре, задайте при деплое-Daether.checksums.algorithms=SHA-1,MD5,SHA-256,SHA-512. - Классификаторы (
sources,javadoc) работают штатно.