публикация файлов ресурсов другого проекта в контекстный путь вместо файла jar в eclipse

#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 требуются, если мы хотим больше контролировать этот процесс, например, некоторые исключения.