2016-09-22 17 views
4

У меня есть Maven проект мульти-модуль:GitLab CI Как запустить трубопровод для подмодулей в Maven нескольких модулей проекта

root 
    SubmoduleA 
     src 
     pom.xml  
    SubmoduleB 
     src 
     pom.xml 
    pom.xml 
    .gitlab-ci.yml 

Есть ли способ, что я могу запустить трубопровод CI только SubmoduleA, когда кто-то проверяет в код, который влияет только на SubmoduleA? Например, кто-то вносит изменения в SubmoduleA. После того, как они совершают и нажимают, я хочу автоматически запускать build-> test-> deploy только на SubmoduleA, поскольку никаких изменений в SubmoduleB не было.

Есть ли способ указать триггеры и задания для определенных подмодулей или подпроектов в рамках репо?

ответ

2

Я считаю, что вам нужно создать проект gitlab для этого подмодуля, и этот подмодуль нуждается в собственном .gitlab-ci.yml. В этот момент он будет построен внутри самого gitlab-ci-runner.

Я не эксперт в Maven (или Java), но я полагаю, что в больших проектах ваши подмодули могут стать отдельными бинарными встроенными библиотеками, хранящимися в ваших собственных собственных хранилищах. Вы оба производите и потребляете банки в своей сборке, и вы обслуживаете их, используя Maven. После этого Maven может загрузить для вас, используя встроенные функции разрешения зависимостей и выборки пакетов, и, возможно, вам будет лучше в сценарии построения больших проектов Java с этим, чем с git-подмодулями.

Я делаю это прямо сейчас в мире .Net с помощью настраиваемого фида nuget, и результаты похожи на то, что вы делаете, в том, что сборки происходят, а ресурсы сервера сборки не теряются из-за источника, включая и перекомпилировать эти модули второй раз.