2014-10-21 2 views
0

Представьте себе программную систему, состоящую из бэкэнд JavaEE и интерфейса JavaScript. Каждый компонент использует свой собственный сложный процесс сборки (Maven для брандмауэра JavaEE, интерфейс Grunt для JavaScript). Каждый компонент должен оставаться независимым модулем с собственными схемами разветвления и управления версиями. Более того, различные команды разработчиков будут работать на бэкэнд и интерфейс. Но окончательный артефакт сборки должен быть интегрированным файлом WAR с автономным (backend + frontend) приложением.Конструкция приложения гетерогенных (JavaEE + JavaScript)

Я думаю о реализации вышеизложенных следующим образом:

  1. созданы отдельные VCS репозитории для внутреннего интерфейса и интерфейса;
  2. внутри бэкэнд-дерева, установить зависимость от интерфейса через внешние SVN или подмодуль git;
  3. использовать grunt-maven-plugin для создания внешнего кода изнутри процесса сборки бэкэнда.

Единственное, что кажется мне подозрительным, заключается в поддержании зависимости от уровня VCS (внешние SVN или подмодуль git). Любые мысли/предложения/альтернативы? Можно ли все это сделать лучше?

+0

Это звучит как работа для Дженкинса, которая может управлять зависимой цепочкой построения нескольких модулей. Таким образом, ваш VCS не должен знать о зависимости одного проекта от другого. – carbontax

+0

Означает ли это, что оба модуля основаны на Maven? Я бы хотел этого избежать. –

ответ

0

Вы посмотрели на этот ответ, который рекомендует maven-frontend-plugin?

How to organize full build pipeline with Gulp, Maven and Jenkins, all the way to integration tests?

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

Смежные вопросы