Eclipse: импорт существующих проектов Maven автоматически создает проект EAR

У меня странное поведение с Eclipse, когда я пытаюсь импортировать существующий проект maven, это многомодульный проект maven JEE с родительским и подмодулями. Структура svn выглядит так:

  • parent
    • ear
    • webapp1
    • webapp2
    • общая библиотека

Когда я импортирую проект в Eclipse, он автоматически создает «shared-libraryEAR» в том же каталоге, что и «родительский» проект. После импорта это выглядит примерно так:

  • общая библиотекаEAR
  • parent
    • ear
    • webapp1
    • webapp2
    • общая библиотека

Он делает это для всех "jar" проектов maven в рабочей области. Это что-то нормальное? Я использую Eclipse Oxygen.2 и Eclipse Neon.3 с плагинами WebSphere и встроенным maven по умолчанию.

Я могу воспроизвести то же поведение, используя демонстрационный проект в этом ответе Stackoverflow: Maven2: лучшие практики для корпоративного проекта (файл EAR)

После импорта проекта в Eclipse Oxygen у меня есть два новых проекта EAR, которых не было в исходной структуре проекта. После импорта структура в Eclipse Enterprise Explorer выглядит следующим образом:

  • myproject-application (оригинальное ухо) ¸
  • myproject-business (оригинальный ejb)
  • myproject-common (исходная библиотека jar)
  • myproject-commonEAR (новый EAR)
  • myproject-persistence (исходная библиотека jar)
  • myproject-persistenceEAR (новый EAR)
  • myproject-web (оригинальный веб-модуль)
  • родительский (исходный родительский проект)

Результат в eclipse: Захват изображения Eclipse Enterprise Explorer

После импорта проектов я обычно просто удаляю ненужные проекты EAR, но это немного раздражает, есть ли решение?

Спасибо.


person Draconian    schedule 30.05.2018    source источник
comment
Можете ли вы сделать пример проекта со структурой, файлами pom и т. Д.?   -  person khmarbaise    schedule 01.06.2018
comment
Я использовал проект из этого ответа stackoverflow stackoverflow.com/a/28161000/1582541   -  person Draconian    schedule 04.06.2018
comment
Я обнаружил, что снятие флажка Maven > Java EE Integration > Enable Java EE Configuration сработало.   -  person Paul Bastide    schedule 30.08.2019


Ответы (3)


Попытка новой копии eclipse (той же версии) решила мою проблему в этом случае. Думаю, это произошло из-за плагина на eclipse.

person Murat    schedule 12.12.2018
comment
Да, вот что я узнал, это делает плагин Websphere 7. При новой установке eclipse с установленными только плагинами Websphere 8 такого поведения у меня нет. - person Draconian; 14.12.2018

У меня был аналогичный опыт, и я наткнулся на https://wiki.eclipse.org/M2E-WTP/New_and_Noteworthy/1.1.0.

m2e-wtp также можно отключить с помощью m2e.wtp.activation> false в разделе Maven вашего проекта pom; xml.

Я создаю новую рабочую область и клонирую новую копию своего кода во временную директорию. Затем я обновил родительский pom.xml следующим образом:

    <properties>
        <m2e.wtp.activation>false</m2e.wtp.activation>
        <m2e.jaxrs.activation>false</m2e.jaxrs.activation>
        <m2e.jpa.activation>false</m2e.jpa.activation>
        <m2e.jsf.activation>false</m2e.jsf.activation>
        <m2e.cdi.activation>true</m2e.cdi.activation>
    </properties>

Затем я импортировал Existing Maven Projects и никаких дополнительных проектов EAR.

person Paul Bastide    schedule 26.09.2019
comment
К сожалению, это не позволяет m2e превратить проект в фасетный веб-проект (WTP), и тогда он не будет хорошо работать с инструментами Eclipse JEE. - person lmsurprenant; 02.10.2019

Такое плохое поведение является результатом наличия подключаемых модулей IBM WebSphere для Eclipse.

Удаление этих плагинов из Eclipse или запуск новой установки Eclipse (как предполагает принятый ответ) недостаточно.

Вам также потребуется создать новое рабочее пространство Eclipse.

У меня еще нет времени, чтобы понять, почему, но это единственное, что у меня сработало.

person Isaac    schedule 15.04.2020