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>
На этом настройка завершена.