Gitlab как хранилище для maven
Page content
Или как отказаться от artifactory и начать жить
Автоматизируем деплой в git репозитарий
Можно это делать и вручную, но для автоматизации воспользуемся
- Завести репозитарий в gitlab, положим он будет называться
artifacts
и завести две веткиreleases
иsnapshots
- Добавить расширение wagon-git в
pom.xml
проекта. Для этого нужно добавить репозитарий плагинаИ дополнить раздел<pluginRepositories> <pluginRepository> <id>synergian-repo</id> <url>https://raw.github.com/synergian/wagon-git/releases</url> </pluginRepository> </pluginRepositories>
build
необходимым расширением<extensions> <extension> <groupId>ar.com.synergian</groupId> <artifactId>wagon-git</artifactId> <version>0.2.5</version> </extension> </extensions>
- Использование плагина позволит описать наш git репозитарий в разделе
distributionManagement
. Обратите внимание на то, как выглядит урл.git
протокол доступа,releases
иsnapshots
ветки в репозитарии, если решили назвать иначе, то нужно вписать тут правильные значения. Авторизация в данном случае будет проходить штатными средствами git в соответствии с его настройками (.netrc
, например).<distributionManagement> <repository> <id>gitlab-releases</id> <name>Gitlab releases</name> <url>git:releases://https://gitlab.example.com/artifacts</url> </repository> <snapshotRepository> <id>gitlab-snapshots</id> <name>Gitlab snapshots</name> <url>git:snapshots://https://gitlab.example.com/artifacts</url> </snapshotRepository> </distributionManagement>
- При корректной настройке
mvn deploy
выгрузит артефакт в репозитарий и создаст необходимую для maven структуру файлов.
Подключение репозитария к проектам
- В гитлабе нужно сгенерировать токен с доступом до
api
. - В
.m2/settings.xml
добавим описание сервера в разделеservers
<server> <id>gitlab-maven</id> <configuration> <httpHeaders> <property> <name>PRIVATE-TOKEN</name> <value>ТОКЕН ОТ ГИТЛАБА</value> </property> </httpHeaders> </configuration> </server>
- Добвим профиль в раздел
profiles
<profile> <id>gitlab</id> <repositories> <repository> <id>gitlab-releases</id> <url>https://gitlab.example.com/artifacts/raw/releases</url> </repository> </repositories> </profile>
- В
pom.xml
проекта добавим репозитарий<repositories> <repository> <id>gitlab-releases</id> <url>https://gitlab.example.com/artifacts/raw/releases</url> </repository> </repositories>
На этом настройка завершена.