Как делиться веб-контентом между проектами затмения - PullRequest
18 голосов
/ 08 декабря 2008

Хотя справочная функция модуля J2EE позволяет создавать общие проекты библиотек Java, я не могу найти изящный способ сделать это для веб-контента.

У меня есть общие JSP, файлы CSS, библиотеки JavaScript и даже фрагменты дескриптора, которые я хотел бы использовать в ряде динамических веб-проектов, так что эти артефакты редактируются только в одном месте, но будут экспортироваться в каждый из Динамические файлы WAR WebProject.

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

Есть ли способ сделать это? Благодарю. Matt.

Ответы [ 4 ]

13 голосов
/ 28 октября 2010

Я долго боролся с одной и той же проблемой и, наконец, наткнулся на хорошее решение: «Связанные папки». Это функция Eclipse, которая работает аналогично символическим ссылкам - она ​​позволяет сопоставить одну физическую папку с несколькими проектами. Преимущество этого решения в том, что оно не требует каких-либо специальных шагов сборки, поэтому Eclipse может автоматически развертывать изменения на локальном сервере Tomcat для тестирования.

Моя конфигурация следующая: у меня есть проект Eclipse с именем "SharedContent". Внутри каталога WebContent находится подкаталог «shareRoot». Все повторно используемые файлы - .jsp, .css и т. Д. - находятся где-то в SharedContent / WebContent / shareRoot. Это динамический веб-проект, поэтому все соответствующие редакторы включены, но я никогда не собираю и не развертываю его.

В других моих проектах я добавляю связанную папку, указывающую на shareRoot. В Eclipse 3.6 выполняются следующие шаги:

  1. В проводнике пакетов щелкните правой кнопкой мыши каталог WebContent проекта, в который необходимо включить файлы многократного использования.

  2. Выберите Создать -> Папка.

  3. Нажмите кнопку «Дополнительно >>>».

  4. Выберите переключатель «Ссылка на альтернативное местоположение (связанная папка)».

  5. В текстовом поле под этим нажмите кнопку Обзор.

  6. В дереве исходных текстов перейдите к SharedContent / WebContent / shareRoot. Затем нажимайте кнопки ОК / Открыть / Готово, пока все диалоговые окна не исчезнут.

Общий контент теперь отображается в вашем проекте. Досадно, что вы должны включить «shareRoot /» в URL при обращении к этим файлам, но вы можете обойти это, используя ваш любимый фильтр перезаписи URL.

Вы можете использовать аналогичный прием в дереве исходных текстов Java для отображения файлов Java на несколько проектов. Я начал это делать вместо того, чтобы встраивать общий код в файл .jar, потому что это избавляет от необходимости перестраивать .jar каждый раз, когда вы хотите проверить изменения на локальном сервере Tomcat.

3 голосов
/ 14 декабря 2008

Если вы используете Subversion, вы можете использовать svn: externals для ссылки на общие файлы в обоих проектах. Затем вы можете редактировать общие файлы в одном месте, и если вы сделаете svn up, все будет синхронизировано.

3 голосов
/ 14 декабря 2008

Я считаю, что написание собственных сценариев (например, пользовательских шагов сборки с использованием ant, легко настраиваемых в eclipse) является одним из наиболее практичных решений.

Вы также можете создавать несколько веб-приложений и ссылаться на их соответствующие ресурсы - это будет легко с css, изображениями и т. П., А не с jsp, которому необходим доступ к вашему коду.

Я могу представить некоторые трюки с опцией tomcats crossContext = "true" для контекста (например, веб-приложение), позволяющей одному приложению получать доступ к классам в другом приложении, но еще не пробовал их.

Извините - я думаю, что это не тот ответ, который вы хотели бы услышать ...

0 голосов
/ 14 марта 2013

хаха, я тебя удивляю поздно

Я китаец, мой английский плохой, но я могу вам помочь.

Олаф Кок прав, но его ответ не идеален.

Вот идеальный ответ. Вы должны ссылаться на следующий URL, это может помочь вам.

нажмите здесь

на странице url, пример для поля содержимого не является точным, вы не обращаете внимания:

если нужно поделиться файлом:

a.jsp  svn://myhome.com/svn/myproject/trunk/a.jsp

если необходимо открыть общий доступ к папке:

xml  svn://myhome.com/svn/myproject/trunk/xml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...