Как разделить общие ресурсы между многими веб-приложениями? - PullRequest
3 голосов
/ 25 февраля 2012

У меня 4 веб-приложения. Но изображения, CSS, JavaScript одинаковы. Когда я делаю изменения в одном проекте после того, как мне нужно распространить изменения на все проекты. Как лучше всего - создать общий jar-файл только с ресурсами или использовать что-то похожее на ссылки в SVN или что-то еще? Спасибо.

Ответы [ 4 ]

3 голосов
/ 02 ноября 2012

У меня было такое же требование, и я получил именно то, что мне нужно, используя Бауэр и небольшой Perl-скрипт .

Проблема с простым копированием файлов между вашими общими проектами заключается в том, что если по какой-либо причине в будущем вам понадобится один из ваших проектов, чтобы временно иметь слегка измененную версию, вы по существу либо сломаете свой проект, либоразвернуть рутину.Это гораздо более чистый способ управления общими ресурсами между проектами путем размещения их в своем собственном хранилище с управлением версиями, чтобы каждый проект мог ссылаться на определенную версию «последней» или «1.0.0» и т. Д.… Теперь решение:

Bower - менеджер пакетов, который может, помимо прочего, помогать управлять поиском / зависимостями репозиториев git.Вы можете получить git-репозитории из URL-адресов или даже локальных путей на диске.Таким образом, все файлы, которые должны быть разделены между проектами, я помещаю их в свой отдельный репозиторий git.Затем Бауэр может получить определенную версию общего контента.Единственная проблема заключается в том, что bower копирует их все в один конкретный подкаталог, который не всегда идеален.

Script ( bower-redeployer ) , поэтому я использую этотPerl-скрипт для развертывания извлеченных общих ресурсов в нужном месте моего проекта.

1 голос
/ 01 июля 2013

(Повышение комментария user710818 к ответу)

Подумайте об использовании функции наложения плагина Maven WAR, как описано в следующих ссылках.По первой ссылке

Оверлеи используются для совместного использования общих ресурсов несколькими веб-приложениями.Зависимости проекта WAR собраны в WEB-INF / lib, за исключением артефактов WAR, которые накладываются на сам проект WAR.

  1. http://maven.apache.org/plugins/maven-war-plugin/overlays.html
  2. http://java.dzone.com/articles/mavens-war-overlay-what-are
  3. http://www.manydesigns.com/en/portofino/portofino3/tutorials/using-maven-overlays
1 голос
/ 25 февраля 2012

С помощью подключаемого модуля maven resources вы можете указать цель copy-resources , которая будет копировать общие ресурсы в указанные проекты до создания файлов war.

Я также видел использование общего каталога с ссылками (ln -s) во время сборки. Это позволяет избежать пространственной и временной нагрузки при создании физических копий ресурсов.

1 голос
/ 25 февраля 2012

Пара предложений ...

  • Поместите их в общий файл jar
  • Поместите их на общие URL-адреса.
...