#java #eclipse #maven #eclipse-wtp
#java #eclipse #maven #eclipse-wtp
Вопрос:
У меня есть несколько общих файлов ресурсов, таких как базовый JS, CSS-файлы и HTML-файлы, и эти файлы будут использоваться двумя проектами / модулями maven. Я переместил эти файлы в общий проект и включил его в качестве зависимости для обоих проектов. Общий проект публикуется как файлы jar, и я не хочу обслуживать файлы из файла jar (используя материал ClassLoader).
Есть ли способ скопировать общий ресурс проекта таким, какой он есть, в фактическую папку контекста проекта, например:
COMMON_PROJECT/src/main/webapp/login.html
чтобы WEBAPP1/src/main/webapp
COMMON_PROJECT/src/main/webapp/login.html
WEBAPP2/src/main/webapp
Фактическое требование: Я не хочу публиковать общие файлы в виде файла jar, потому что позже эти файлы будут удалены из файла war и размещены непосредственно на сервере Ngnix. Могут ли некоторые из них предоставить рекомендации по улучшению управления с этой точки зрения?
Ответ №1:
С помощью Maven вы можете сделать свой общий проект оверлейным проектом, объявленным как зависимость, чтобы его ресурсы могли использоваться совместно в других проектах. Вам нужно будет использовать последний плагин m2eclipse с интеграцией WTP для поддержки оверлеев в Eclipse IDE.
Комментарии:
1. Спасибо. Я получаю
Missing requirement: Extensions for m2eclipse and eclipse webtools 0.1.0.201004101956 (org.maven.ide.eclipse.wtp.ext.feature.feature.group 0.1.0.201004101956) requires 'org.maven.ide.eclipse.wtp [0.10.0,0.11.0)' but it could not be found
при установке плагина, и я попробовал использовать какую-то устаревшую версию, как сказано в какой-то проблеме, но безуспешно. Любая помощь?2. ваш комментарий показал мне правильное направление и закончился поиском новых версий
m2e
иm2e-wtp
плагинов. Я добавил подробности в качестве ответа. Спасибо
Ответ №2:
Вы можете предоставить свои файлы ресурсов как проект war. А затем используйте плагин Warpath, чтобы заставить ваши два проекта импортировать war (и его ресурсы).
Комментарии:
1. с помощью этого плагина будет ли сборка из Eclipse также публиковать наложения?
2. Никогда не пробовал из IDE. Я просто добавляю, чтобы изменить файлы конфигурации. Новые файлы и переопределяющие файлы находятся в сгенерированной войне.
Ответ №3:
Я пытался использовать плагин, на который ответил @Eugene Kuleshov, но у плагина возникли проблемы с зависимостями с последней версией m2e.
После некоторого поиска плагин m2e-wtp (update site: http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/
) поддерживает точную функцию веб-наложения.
Для этого требуется последний плагин m2e (1.0 ) (обновить сайт: http://download.eclipse.org/technology/m2e/releases/
)
После установки m2e-wtp
нам необходимо установить buildhelper
средство сопоставления жизненного цикла из m2e
каталога
Window > Preferences > Maven > Discovery > Open Catalog
- установить
Lifecycle mappings > buildhelper
Поддерживаются только в последних версиях этих m2e
и m2e-wtp
плагинов weboverlays (старый Maven builder, который мы видим в Project properties > Builders
, не способен на это)
Однако при обычной сборке Maven наложения работают «из коробки». По умолчанию плагин Maven war (не плагин eclipse) скопирует файлы ресурсов из dependency war (также jar) в контекстный путь, когда мы создаем проект Maven. overlay
требуются, если мы хотим больше контролировать этот процесс, например, некоторые исключения.