Как узнать, какие модули Maven были изменены в SCM? - PullRequest
0 голосов
/ 21 октября 2019

Представьте, что у меня есть проект Maven со следующей структурой:

-- Client (Used as dependency in other projects to communicate with Server)
---- pom.xml
-- Common (Domain module with classes used by both Client and Server)
---- pom.xml
-- Server (Actual application that is deployed and served in production)
---- pom.xml
pom.xml

И Сервер, и Клиент зависят от общего.

Я ищу решение, в котором мое решение CI (Jenkins) может оценить, были ли какие-либо изменения в каком-либо из дочерних модулей в моем SCM с момента последней успешной сборки соответствующей сборки (не уверен, что лучший способ отследить эту последнюю успешную сборку, возможно, с использованием тегов git). Это связано с тем, что в каждом конвейере у меня разные поведения для каждого модуля, и я не хочу излишне запускать их все, когда был изменен только один. Я ожидаю следующего поведения:

  • Если клиент был изменен, установите модуль клиента и разверните его на удаленном Nexus. (Процесс затенения Клиента уже включает в себя Общий модуль, поэтому его также не нужно развертывать.)
  • Если Сервер был изменен, установите модуль Сервера и разверните его для производства процесса затенения Сервера такжевключает в себя общий модуль)
  • Если общее было изменено, установите модули клиента и сервера и разверните их.

Не имеет значения, я обновляю версию модуля сервера в pom.xml, но мне нужно отслеживать версию в модуле Client (поскольку она используется в качестве зависимости в других проектах).

1 Ответ

0 голосов
/ 21 октября 2019

Большинство провайдеров SCM теперь поддерживают веб-хуки. Вы можете запускать задание jenkins всякий раз, когда происходит слияние с вашей основной ветвью.

Теперь, как часть сборки jenkins, вы можете использовать интерфейс API оставшейся части провайдера SCM. ( bitbucket и github предоставляют остальные API), которые можно использовать, чтобы выяснить, какие модули были изменены. После того, как вы узнаете, какие модули были изменены, вы можете создавать и развертывать их выборочно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...