Я долго боролся с одной и той же проблемой и, наконец, наткнулся на хорошее решение: «Связанные папки». Это функция Eclipse, которая работает аналогично символическим ссылкам - она позволяет сопоставить одну физическую папку с несколькими проектами. Преимущество этого решения в том, что оно не требует каких-либо специальных шагов сборки, поэтому Eclipse может автоматически развертывать изменения на локальном сервере Tomcat для тестирования.
Моя конфигурация следующая: у меня есть проект Eclipse с именем "SharedContent". Внутри каталога WebContent находится подкаталог «shareRoot». Все повторно используемые файлы - .jsp, .css и т. Д. - находятся где-то в SharedContent / WebContent / shareRoot. Это динамический веб-проект, поэтому все соответствующие редакторы включены, но я никогда не собираю и не развертываю его.
В других моих проектах я добавляю связанную папку, указывающую на shareRoot. В Eclipse 3.6 выполняются следующие шаги:
В проводнике пакетов щелкните правой кнопкой мыши каталог WebContent проекта, в который необходимо включить файлы многократного использования.
Выберите Создать -> Папка.
Нажмите кнопку «Дополнительно >>>».
Выберите переключатель «Ссылка на альтернативное местоположение (связанная папка)».
В текстовом поле под этим нажмите кнопку Обзор.
В дереве исходных текстов перейдите к SharedContent / WebContent / shareRoot. Затем нажимайте кнопки ОК / Открыть / Готово, пока все диалоговые окна не исчезнут.
Общий контент теперь отображается в вашем проекте. Досадно, что вы должны включить «shareRoot /» в URL при обращении к этим файлам, но вы можете обойти это, используя ваш любимый фильтр перезаписи URL.
Вы можете использовать аналогичный прием в дереве исходных текстов Java для отображения файлов Java на несколько проектов. Я начал это делать вместо того, чтобы встраивать общий код в файл .jar, потому что это избавляет от необходимости перестраивать .jar каждый раз, когда вы хотите проверить изменения на локальном сервере Tomcat.