当我尝试导入现有的maven项目时,我对Eclipse有一种奇怪的行为,它是一个带有父模块和子模块的多模块JEE maven项目。 结构svn看起来像这样:
当我将项目导入Eclipse时,它会自动在“父”项目的同一目录中创建“shared-libraryEAR”。导入后它看起来像这样:
它为工作区中的每个“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中的结构在导入后如下所示:
日食结果: Image capture of Eclipse Enterprise Explorer
导入项目后,我通常只删除不必要的EAR项目,但这有点烦人,是否有解决方案?
感谢。
答案 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工作区。
我还没有时间弄清楚为什么,但这是唯一对我有用的东西。