Как обмениваться веб-контентом между проектами eclipse
Хотя ссылочная функция модуля J2EE позволяет создавать общие проекты библиотеки Java, я не могу найти оптимальный способ сделать это для веб-контента.
У меня есть общие JSP, CSS файлы, библиотеки JavaScript и даже фрагменты дескрипторов, которые я бы хотел использовать во многих динамических веб-проектах, так что эти артефакты редактируются только в одном месте, но будут экспортироваться в каждый из Динамические файлы WAR WebProject.
Я удивлен, что не могу найти способ повысить повторное использование в веб-пространстве без написания собственных сценариев и подключения к процессу экспорта.
Есть ли способ сделать это?
Благодарю.
Матф.
Ответы
Ответ 1
Я долго боролся с той же проблемой и, наконец, наткнулся на хорошее решение: "Связанные папки". Это функция Eclipse, которая работает аналогично символическим ссылкам - она позволяет отображать одну физическую папку в несколько проектов. Самое приятное в этом решении заключается в том, что он не требует каких-либо специальных шагов сборки, поэтому Eclipse может автоматически развертывать изменения на локальном сервере Tomcat для тестирования.
Моя конфигурация выглядит следующим образом: у меня есть проект Eclipse с именем "SharedContent". Внутри каталога WebContent находится подкаталог "shareRoot". Все файлы многократного использования -.jsp,.css и т.д. - находятся где-то под SharedContent/WebContent/shareRoot. Это динамический веб-проект, поэтому все соответствующие редакторы включены, но я никогда не собираю и не развертываю его.
В моих других проектах я добавляю Связанную папку, указывающую на shareRoot. В Eclipse 3.6 выполняются следующие шаги:
-
В Проводнике пакетов щелкните правой кнопкой мыши каталог WebContent проекта, который должен включать файлы многократного использования.
-
Выберите "Создать" → "Папка".
-
Нажмите кнопку "Дополнительно → > ".
-
Выберите переключатель "Ссылка на альтернативное местоположение (связанная папка)".
-
В текстовом поле под этим названием нажмите "Обзор".
-
В исходном дереве перейдите к SharedContent/WebContent/shareRoot. Затем нажмите OK/Open/Finish, пока все диалоги не исчезнут.
Общий контент теперь отображается в вашем проекте. Раздражающе, вы должны включить "shareRoot/" в URL-адрес при ссылке на эти файлы, но вы можете обойти это, используя свой любимый фильтр перезаписи URL-адресов.
Вы можете использовать подобный трюк в исходном дереве Java для сопоставления файлов Java в нескольких проектах. Я начал это делать, вместо того, чтобы создавать общий код в файле .jar, потому что он избегает необходимости перестраивать .jar каждый раз, когда вы хотите протестировать изменения на локальном сервере Tomcat.
Ответ 2
Я считаю, что писать собственные сценарии (например, пользовательские шаги сборки с использованием ant, легко настраиваемые в eclipse) являются наиболее практичными решениями.
Вы также можете создавать несколько webapps и ссылаться на их соответствующие ресурсы - это было бы легко с css, изображениями и т.п., а не с jsp, которым необходимо получить доступ к вашему коду.
Я могу представить некоторые трюки с tomcats crossContext = "true" для контекста (например, webapplication), позволяя одному приложению получать доступ к классам в другом приложении, но еще не пробовал их.
Извините - я считаю, что не тот ответ, который вы хотели бы услышать...
Ответ 3
Если вы используете Subversion, вы можете использовать SVN: внешние ссылаться на общие файлы в обоих проектах. Затем вы можете редактировать общие файлы в одном месте, и если вы выполните svn up
, все будут синхронизированы.
Ответ 4
Ха-ха, я дам поздний сюрприз
Я китайский, мой английский плохой, но я могу помочь вам.
Олаф Кок прав, но его ответ не идеален.
Вот идеальный ответ. u должен ссылаться на следующий url, он может hep u.
нажмите здесь
на странице url, пример для поля содержимого не является точным, u fllow me:
если необходимо предоставить общий доступ к файлу:
a.jsp svn://myhome.com/svn/myproject/trunk/a.jsp
если необходимо открыть папку:
xml svn://myhome.com/svn/myproject/trunk/xml