Eclipse:导入 "Existing Maven Projects" 自动创建 EAR 项目
Eclipse: Import "Existing Maven Projects" create EAR project automatically
当我尝试导入一个现有的 maven 项目时,我对 Eclipse 有一个奇怪的行为,它是一个 multi-module JEE maven 项目,带有 parent 和 sub-modules。
结构 svn 如下所示:
- parent
- 耳朵
- webapp1
- webapp2
- shared-library
当我将项目导入 Eclipse 时,它会自动在 "parent" 项目的同一目录中创建一个 "shared-libraryEAR"。导入后看起来像这样:
- shared-libraryEAR
- parent
- 耳朵
- webapp1
- webapp2
- shared-library
它为工作区中的每个 "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 中的结构如下所示:
- myproject-application(原耳)¸
- myproject-business(原始ejb)
- myproject-common(原始 jar 库)
- myproject-commonEAR(新 EAR)
- myproject-persistence(原始 jar 库)
- myproject-persistenceEAR(新 EAR)
- myproject-web(原始网络模块)
- parent(原始 parent 项目)
日食结果:
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 项目。
当我尝试导入一个现有的 maven 项目时,我对 Eclipse 有一个奇怪的行为,它是一个 multi-module JEE maven 项目,带有 parent 和 sub-modules。 结构 svn 如下所示:
- parent
- 耳朵
- webapp1
- webapp2
- shared-library
当我将项目导入 Eclipse 时,它会自动在 "parent" 项目的同一目录中创建一个 "shared-libraryEAR"。导入后看起来像这样:
- shared-libraryEAR
- parent
- 耳朵
- webapp1
- webapp2
- shared-library
它为工作区中的每个 "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 中的结构如下所示:
- myproject-application(原耳)¸
- myproject-business(原始ejb)
- myproject-common(原始 jar 库)
- myproject-commonEAR(新 EAR)
- myproject-persistence(原始 jar 库)
- myproject-persistenceEAR(新 EAR)
- myproject-web(原始网络模块)
- parent(原始 parent 项目)
日食结果: 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 项目。