Построить продвижение: как вы управляете зависимостями? - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь понять все последствия переключения наших java-проектов с политики моментальных снимков / выпусков для создания продвижения.

Один очевидный шаг заключается в том, что каждая сборка в конечном итоге создает артефакт, который может идти вплоть до производственной среды, поэтому больше нет Snapshot. Но тогда как мне управлять ссылкой из проекта на другие артефакты, которые могут или не могут переходить на prod?

Мне было трудно найти ценную информацию по этому конкретному вопросу. Конечно, о продвижении сборки говорят много, но управление зависимостями в свете перехода к продвижению сборки имеет меньшую прозрачность.

Я вижу два варианта:

  • Можно зависеть только от артефактов, которые ранее были продвинуты в производственную среду
  • Когда один зависит от других артефактов, встроенный артефакт может переходить только в последнюю среду своих зависимостей. То есть, если я зависел от артефакта, которому разрешено идти на тестирование, а не от продукта, то моя сборка не сможет перейти на продукт

Существуют ли отраслевые стандарты по этой теме? Или лучшие практики?

Большое спасибо за вашу помощь:)

редактирование: Мы размещаем в Артефакторе три вида артефактов:

  • Библиотеки

  • Уши

  • Модули внутри EAR. Некоторые из них являются «общедоступными» уровнями, которые необходимы любому EAR, который хочет взаимодействовать с EAR

Мы разворачиваем EAR на серверах JEE. Наши библиотеки и общедоступные уровни развернуты в Artifactory и упакованы в EAR, поэтому они не развертываются непосредственно в контейнерах JEE.

Один проект строит несколько модулей, и все они упакованы в EAR вместе с его зависимостями. Один проект может зависеть от модуля другого проекта, и вот где он становится сложным ...

1 Ответ

0 голосов
/ 02 мая 2018

Мы различаем «развертываемые артефакты» и «библиотеки».

Развертываемые артефакты (такие как уши, войны, отдельные банки) проходят через конвейер, поэтому их продвигают и тестируют на разных этапах. Они не могут быть зависимостями для любого другого артефакта.

Библиотеки, с другой стороны, не продвигаются. Когда они построены (как версия выпуска), сразу же становятся доступными как возможные зависимости для всех других артефактов (сборка выпуска включает модульные тесты и некоторые интеграционные тесты). Они проверяются и продвигаются косвенно, когда они используются в развертываемых артефактах.

...