Eclipse:导入 "Existing Maven Projects" 自动创建 EAR 项目

Eclipse: Import "Existing Maven Projects" create EAR project automatically

当我尝试导入一个现有的 maven 项目时,我对 Eclipse 有一个奇怪的行为,它是一个 multi-module JEE maven 项目,带有 parent 和 sub-modules。 结构 svn 如下所示:

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

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

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

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

日食结果: Image capture of Eclipse Enterprise Explorer

导入项目后,我通常只是删除不需要的EAR项目,但是有点烦人,有解决办法吗?

谢谢。

尝试新的 eclipse 副本(相同版本)解决了我关于这种情况的问题。我想,这是因为 eclipse 上的一个插件。

我和 运行 在 https://wiki.eclipse.org/M2E-WTP/New_and_Noteworthy/1.1.0 有类似的经历。

m2e-wtp can also be disabled via the m2e.wtp.activation>false in the Maven section of your project 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 项目。

这种不良行为是使用 IBM 的 Eclipse WebSphere 插件的结果。

从 Eclipse 中删除这些插件,或者从全新的 Eclipse 安装开始(就像接受的答案建议的那样)是不够的。

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

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

首选项>Java EE>项目>企业应用程序成员资格>将项目添加到 EAR

取消选中该复选框以避免创建 EAR 项目。