WTP-m2e не развертывает транзитивные зависимости
У меня есть веб-приложение, которое структурировано следующим образом:
A.jar - > B. война - > C. война
Я использую Eclipse Juno, а версияWTP-1.1 . Тот самый A.jar это проект утилиты рабочего пространства, который включен B. war. B. война-это военный проект, который включен C. война как наложение. Это способ , которым я это делаю:
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
После этого я развертываю проект C на сервере Tomcat. Это работает как заклинание, если я вручную разверну Maven породил войну с котом, потому что A.jar входит в WEB-INF / lib . Однако моя проблема возникает, когда я позволяю m2e-wtp выполнить развертывание, потому что он делает наложение правильно, но не включает транзитивную зависимость. Я попытался включить его в качестве помпона, как я где-то здесь читал, но у меня тот же результат.
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.projects</groupId>
<artifactId>B</artifactId>
<version>1.0-SNAPSHOT</version>
<type>pom</type>
</dependency>
Я использую новейшие версии m2e (1.2) и m2e-wtp (0.16) и обновляю свои проекты конфигурацией Maven.
Является ли это проблемой m2e-wtp или мне просто нужно организовать свой проект по-другому?
Отредактировано
Я заметил, что конфигурация m2e-wtp хранится в проекте Eclipse ./ настройки / орг.затмение.РМО.общий.файл компонента . Вот как это выглядит для моей войны:
<dependent-module deploy-path="/"
handle="module:/overlay/prj/B?includes=**/**&excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
handle="module:/overlay/slf/?includes=**/**&excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
Как я вижу войну зависимость устанавливается для потреблять в то время как банку зависимости устанавливаются для использовать.
Выпущенная версия m2e-wtp 0.17, похоже, не исправлена оно.
Отредактировано (2013-08-30)
Сегодня я вернулся к той же самой проблеме. Даже у меня есть Eclipse kepler, установленный споследним стабильным выпуском WTP из коробки, эта проблема, кажется, сохраняется. Я думал, что все уже решено,но, видимо, ошибся...3 ответа:
Похоже, это проблема плагина Eclipse Juno и WTP.
У меня была та же проблема, и я решил ее следующим образом:
Вы можете увидеть на сборке развертывания в свойствах проекта eclipse, что проблема решена и зависимости maven есть.
- резервное копирование рабочей области eclipse и кода проекта
- удалите свой проект из eclipse (без удаления содержимого)
- Откройте командный терминал (cmd)
- run mvn eclipse: clean
- run mvn eclipse:eclipse-Dwtpversion=2.0
- отредактируйте файл Eclipse classpath с помощью текстового редактора: %PROJECT_PATH%\.classpath
- Удалите все строки с атрибутом kind= " var " из вашего .classpath файл. Например:
- сохранить файл и закрыть редактор.
- в eclipse нажмите на: file - > Import...->Maven - > импорт существующего проекта maven и импорт вашего проекта опять
- Maven - > обновить проект (если хотите)
Надеюсь, это поможет.
У меня тоже есть эта проблема. У меня есть уродливый обходной путь:
Поместите все зависимости исходной войны в отдельный проект (тип jar) и сделайте так, чтобы и исходная война, и оверлейная война зависели от этого. Итак, для примера:
A.jar - > B. война - > C. война
Становится
A.jar - > B-зависимости.jar (создан новый модуль под названием B-зависимости)
Б-зависимости.jar - > B. война
Б-зависимости.кувшин -> С. война
Обратите внимание, что это не относится к Tomcat; я использую JBoss.