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=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
    handle="module:/overlay/slf/?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>

Как я вижу войну зависимость устанавливается для потреблять в то время как банку зависимости устанавливаются для использовать.

Выпущенная версия m2e-wtp 0.17, похоже, не исправлена оно.


Отредактировано (2013-08-30)

Сегодня я вернулся к той же самой проблеме. Даже у меня есть Eclipse kepler, установленный споследним стабильным выпуском WTP из коробки, эта проблема, кажется, сохраняется. Я думал, что все уже решено,но, видимо, ошибся...
3 12

3 ответа:

Я думаю, что это не проблема вашей проектной организации. Ваша проблема очень похожа на этот отчет об ошибке m2e-wtp .

Похоже, это проблема плагина Eclipse Juno и WTP.

У меня была та же проблема, и я решил ее следующим образом:

  1. резервное копирование рабочей области eclipse и кода проекта
  2. удалите свой проект из eclipse (без удаления содержимого)
  3. Откройте командный терминал (cmd)
  4. run mvn eclipse: clean
  5. run mvn eclipse:eclipse-Dwtpversion=2.0
  6. отредактируйте файл Eclipse classpath с помощью текстового редактора: %PROJECT_PATH%\.classpath
  7. Удалите все строки с атрибутом kind= " var " из вашего .classpath файл. Например:

  8. сохранить файл и закрыть редактор.
  9. в eclipse нажмите на: file - > Import...->Maven - > импорт существующего проекта maven и импорт вашего проекта опять
  10. Maven - > обновить проект (если хотите)
Вы можете увидеть на сборке развертывания в свойствах проекта eclipse, что проблема решена и зависимости maven есть.

Надеюсь, это поможет.

У меня тоже есть эта проблема. У меня есть уродливый обходной путь:

Поместите все зависимости исходной войны в отдельный проект (тип jar) и сделайте так, чтобы и исходная война, и оверлейная война зависели от этого. Итак, для примера:

A.jar - > B. война - > C. война

Становится

A.jar - > B-зависимости.jar (создан новый модуль под названием B-зависимости)

Б-зависимости.jar - > B. война

Б-зависимости.кувшин -> С. война

Обратите внимание, что это не относится к Tomcat; я использую JBoss.