Представьте себе программную систему, состоящую из бэкэнд JavaEE и интерфейса JavaScript. Каждый компонент использует свой собственный сложный процесс сборки (Maven для брандмауэра JavaEE, интерфейс Grunt для JavaScript). Каждый компонент должен оставаться независимым модулем с собственными схемами разветвления и управления версиями. Более того, различные команды разработчиков будут работать на бэкэнд и интерфейс. Но окончательный артефакт сборки должен быть интегрированным файлом WAR с автономным (backend + frontend) приложением.Конструкция приложения гетерогенных (JavaEE + JavaScript)
Я думаю о реализации вышеизложенных следующим образом:
- созданы отдельные VCS репозитории для внутреннего интерфейса и интерфейса;
- внутри бэкэнд-дерева, установить зависимость от интерфейса через внешние SVN или подмодуль git;
- использовать grunt-maven-plugin для создания внешнего кода изнутри процесса сборки бэкэнда.
Единственное, что кажется мне подозрительным, заключается в поддержании зависимости от уровня VCS (внешние SVN или подмодуль git). Любые мысли/предложения/альтернативы? Можно ли все это сделать лучше?
Это звучит как работа для Дженкинса, которая может управлять зависимой цепочкой построения нескольких модулей. Таким образом, ваш VCS не должен знать о зависимости одного проекта от другого. – carbontax
Означает ли это, что оба модуля основаны на Maven? Я бы хотел этого избежать. –