Eclipse:导入“现有Maven项目”自动创建EAR项目

时间:2018-05-30 20:39:46

标签: java eclipse maven java-ee m2e

当我尝试导入现有的maven项目时,我对Eclipse有一种奇怪的行为,它是一个带有父模块和子模块的多模块JEE maven项目。 结构svn看起来像这样:

    • webapp1
    • webapp2的
    • 共享库

当我将项目导入Eclipse时,它会自动在“父”项目的同一目录中创建“shared-libraryEAR”。导入后它看起来像这样:

  • 共享libraryEAR
    • webapp1
    • webapp2的
    • 共享库

它为工作区中的每个“jar”maven项目执行此操作。 这是正常的吗? 我使用Eclipse Oxygen.2和Eclipse Neon.3与WebSphere插件和默认的嵌入式maven。

我可以使用此Stackoverflow答案中的演示项目重现相同的行为:Maven2: Best practice for Enterprise Project (EAR file)

将项目导入Eclipse Oxygen后,我有两个新的EAR项目,原始项目结构中不存在。 Eclipse Enterprise Explorer中的结构在导入后如下所示:

  • myproject-application(原始耳朵)¸
  • myproject-business(original ejb)
  • myproject-common(original jar lib)
  • myproject-commonEAR(新EAR)
  • myproject-persistence(original jar lib)
  • myproject-persistenceEAR(新EAR)
  • myproject-web(原始网络模块)
  • parent(原始父项目)

日食结果: Image capture of Eclipse Enterprise Explorer

导入项目后,我通常只删除不必要的EAR项目,但这有点烦人,是否有解决方案?

感谢。

3 个答案:

答案 0 :(得分:0)

尝试重新制作Eclipse(相同版本)解决了我与此案有关的问题。我想这是由于eclipse上的插件引起的。

答案 1 :(得分:0)

我也有类似的经历,并且遇到了https://wiki.eclipse.org/M2E-WTP/New_and_Noteworthy/1.1.0

  也可以通过项目pom; xml的Maven部分中的m2e.wtp.activation> false禁用

m2e-wtp。

我创建了一个新的工作区,并将我的代码的新副本克隆到了temp目录中。然后,我使用以下内容更新了父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项目。

答案 2 :(得分:0)

这种不良行为是因为拥有IBM的Eclipse WebSphere插件。

从Eclipse中删除这些插件,或者从全新的Eclipse安装开始(如已接受的答案所示)是不够的。

您还需要创建一个新的Eclipse工作区。

我还没有时间弄清楚为什么,但这是唯一对我有用的东西。

相关问题