Сборка системы, которая может использовать зависимости от нескольких репостов - PullRequest
1 голос
/ 26 октября 2019

Я работал инженером-программистом в Amazon много лет, но недавно решил перейти в другую компанию. В Amazon есть специальная система сборки, которая называется brazil.

То, как она работала, заключалось в том, что я определяю рабочее пространство, а затем определяю, какие пакеты я буду использовать для своей разработки. Пример: пакет A зависит от B, C и D. Когда я создал свое рабочее пространство, я бы указал, что мне нужно иметь A и B. Локально.

Будет создан следующий конструктор папок:

myServiceAWorkspace
 - .workspaceConfig
 - A/
 - A/src
 - A/tst
 - A/.packageConfig
 - B/
 - B/src
 - B/tst
 - B/.packageConfig

.packageConfig содержал информацию о зависимостях и о том, как построить проект, очень похоже на build.gradle

Если я, где перейти к папке A и запустить нашу команду сборки,будет ли он собирать пакет A с B из локальной рабочей области, но будет использовать C и D из нашего репозитория. (Любые зависимости от B также будут использоваться из нашего репозитория, если только они не извлечены в локальной рабочей области)

Я нашел это очень мощным, поскольку сделало совместное использование пакетов между различными службами, среди прочего, очень простым.

Если вы искали систему сборки, которая работает так, но без везения. Есть ли какая-нибудь система сборки, которая может сделать это, или я могу заставить Gradle или Maven работать так?

Ответы [ 2 ]

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

Вы можете достичь чего-то похожего в Gradle с помощью составных сборок .

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

Я думаю, что организация создала систему сборки для определенной потребности, когда Maven и Gradle следуют принципу соглашения по конфигурации. Я бы особенно предложил в вашем случае использовать Apache Ant старую систему сборки, но это здорово. Если вы хотите, вы также можете использовать Apache Ivy для настройки вашей сборки в зависимости от необходимости. Опять же, он может не соответствовать вашим точным требованиям, которые вы упомянули, но по крайней мере вы сможете это сделатьЯ думаю, что рекомендуется следовать Maven или Gradle, где каждый может использовать с легкостью.

Как предложил JF Meier Sir, вы можете создать многомодульный проект maven или gradle для более детального подхода.

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