Eclipse: Есть ли несколько динамических веб-проектов для одного файла войны? - PullRequest
6 голосов
/ 07 января 2010

Я нахожусь в ситуации, когда я хочу иметь возможность иметь веб-проект в Eclipse, где папка WebContents объединяется из нескольких проектов, а не только в один динамический веб-проект.

Если у меня есть «a.jsp» в проекте A и «b.jsp» в проекте B, я хотел бы закончить одним веб-приложением в веб-контейнере, где «a.jsp» и «b. JSP "сидеть рядом друг с другом в одной папке. Было бы идеально, если бы все файлы, не только jsp-файлы, могли быть объединены следующим образом.

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

Я знаю, что могу сделать это с помощью подходящей магии муравья, но мы хотим иметь что-то, что хорошо работает для нашего текущего процесса разработки на основе Eclipse. Мы будем использовать внедрение зависимостей JSR-330 в классах Java, и, по сути, я бы хотел что-то подобное внедрению зависимостей, но только для любого ресурса, а не только для классов.

Может ли Eclipse сделать это?

Если Eclipse не может, подойдет ли развертывание EAR? В настоящее время у меня есть опыт работы только с WAR.

Ответы [ 4 ]

1 голос
/ 07 января 2010

Если использовать Maven как вариант, тогда Maven overlays будет идеальным вариантом, и теоретически он должен поддерживаться плагином m2eclipse. Но у меня нет никакого опыта в этом, и могут быть некоторые проблемы (см. MNGECLIPSE-599 ), так что это потребует некоторого тестирования.

Тем не менее, комментарии MNGECLIPSE-599 довольно интересны, особенно этот:

Любая любовь к этому вопросу? Из-за этого вся наша команда переехала в Netbeans для разработки WAR. Мы в основном ожидаем, что Servlet 3.0 решит эту проблему для нас (Servlet 3.0 фактически избавит нас от необходимости делать оверлеи в Maven). Наша компания очень сильно сократила копирование-вставку, поэтому мы используем оверлеи для управления носителями WAR, которые должны быть распространены в нашем приложения.

То, как Java EE 6 сделает оверлеи устаревшими, не совсем понятно для меня (через веб-фрагменты?), Но факт заключается в том, что Выпуск ETP Eclipse с поддержкой Java EE 6 был отложен до июнь 2010 . Поэтому до этого момента вам понадобятся дополнительные инструменты (например, наложения Maven) или, возможно, стоит подумать о переходе на NetBeans.

1 голос
/ 05 июля 2010

У меня был похожий вариант использования, который я успешно разрешил, используя (как предложил Паскаль) Maven. У меня есть корневой веб-проект (который также работает автономно), и для каждого клиента у меня есть отдельный веб-проект, который настроен для наложения на корневой веб-проект. Кроме того, поскольку у каждого клиента есть несколько сред, я создал профиль maven для каждой среды (test, prod, local, ...). Я задокументировал это немного, поэтому, если вам когда-нибудь будет интересно, я не возражаю, отправив вам документ по почте.

0 голосов
/ 06 января 2015

Я рекомендую использовать функцию сервлета 3.0 «Ресурсы в комплекте jar-файлов». С помощью этой функции вы можете включать веб-ресурсы (html / xhtml / css / js / jpg / etc) в файлы jar (наряду с файлами классов java, конечно), и веб-сервер будет искать папки «META-INF / resources» банки для ресурсов.

Подробнее здесь:

http://alvinjayreyes.com/2013/07/28/servlet-3-0/

0 голосов
/ 07 января 2010
  • вам не нужно менять «процесс разработки на основе затмения», чтобы использовать муравей. Просто зарегистрируйте Ant Builder (right click project > Properties > Builders) и интегрируйте ant-скрипт в процесс eclipse
  • Вы можете использовать мультимодульные опции Maven. (Плагин Maven для Eclipse также очень хорош)
  • использование может также использовать FileSync - не стандартное, но довольно мощное. Конечно, он используется для разработки на localhost.

Вот несколько советов по использованию FileSync:

  • установить, какие файлы / шаблоны / каталоги копировать в целевой каталог (Tomcat's webapps/application в вашем случае). Поэтому, как только вы нажмете «сохранить», файлы будут скопированы.
  • сделать все абсолютные пути в относительном FileSync.xxxx.prefs, введя связанный ресурс (preferences > workspace > linked resources) и используя переменную ресурса ссылки в файле prefs (назовем его WEBAPP_HOME)
  • зафиксировать FileSync.xxxx.prefs файл
  • скажите каждому разработчику в команде настроить переменную WEBAPP_HOME. Таким образом, настройка будет действительна не только для одной машины, но для каждой машины в команде.
...