不会导出类路径条目org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER

时间:2011-07-23 09:27:38

标签: eclipse maven export

我在Eclipse中收到此警告:

  

不会导出或发布类路径条目org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER。可能会导致运行时ClassNotFoundExceptions

搜索后我发现我需要修复导出。我做到了。

Eclipse Java Build Path properties

但这个警告仍然存在! 还有什么办法可以解决它? 感谢。

15 个答案:

答案 0 :(得分:34)

您可以右键单击警告,选择quickfix并选择以下选项之一:

  • 将关联的原始类路径条目标记为发布/导出依赖项。
  • 从潜在的发布/导出依赖项集中排除关联的原始类路径条目。

由于您没有eclipse发布/导出项目,因此可以安全地将其排除。但无论哪种方式都没有区别

一步一步的截图:
http://publib.boulder.ibm.com/infocenter/radhelp/v8/index.jsp?topic=/com.ibm.javaee.doc/topics/tlooseclasspath.html

答案 1 :(得分:25)

我曾尝试过两种选择,但只有后者才是你需要的:

  • 将关联的原始类路径条目标记为发布/导出 依赖
  • 从潜在集合中排除关联的原始类路径条目 发布/导出依赖项

如果导出依赖项,请通过 Maven刷新项目配置 - >更新项目配置上下文菜单将导致警告返回。在这种情况下,您需要手动编辑.classpath文件:

<classpathentry kind="con" exported="true" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

只需删除属性exported="true"并通过刷新项目配置进行确认。

答案 2 :(得分:12)

我有同样的问题;包括

后它就消失了
<packaging>war</packaging> 
在pom中。根本没有包装。

答案 3 :(得分:9)

http://geertschuring.wordpress.com/2009/03/05/why-the-maven2_classpath_container-will-not-be-exported-or-published/

在某些情况下,Eclipse会向您显示以下警告:

Classpath entry org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtime ClassNotFoundExceptions may result.

解决此问题,请执行以下操作:

Open the properties of the project that generates this warning
Click on “Java Build Path”
Click on the tab “Order and Export”
Enable “Maven Dependencies”
Click on “Ok”
Open the “Problems” view
Select the warning we are trying to solve, and press “Ctrl-1″
Click on “Ok”

问题现在解决了。警告消失可能需要一些时间,因为项目需要在它消失之前重建。

答案 4 :(得分:5)

只需右键单击警告并快速修复

即可

enter image description here

然后,您可以从源代码管理

查看.classpath文件更改

enter image description here

答案 5 :(得分:4)

我无法解决Eclipse Luna中的quickfix问题。删除Project Facet“Dynamic Web _Module”后,问题消失了。在Windows中 - &gt;偏好 - &gt;项目方面。

enter image description here

P.S。包装作为战争也解决了发布,但它被认为是一个JAR,我很困惑为什么一些项目工作正常,一些没有。

顺便说一下,警告是真实的。它在服务器中导致了一个ClassNotFoundExceptions异常,当其他项目引用它时,它就不可用了。

答案 6 :(得分:1)

大多数答案,包括目前接受的答案,只能为这个问题提供临时解决方案:每次我选择Maven&gt;更新项目... 保留选项'从pom.xml更新项目配置',警告返回。

但是,在Eclipse 4.5(Mars)中安装m2e-wtp - Maven Integration for WTP并再次发出Update Project ...后,在选择该选项的同时,警告(以及产生的错误)消失了。

答案 7 :(得分:1)

我有一个简单的方法来解决这个问题:

  1. 从Eclipse中删除项目。
  2. 进入项目所在的工作空间。
  3. 删除下图中选择的项目。只需离开srcpom.xml

    enter image description here

  4. 在Eclipse中重新导入项目。

答案 8 :(得分:1)

在我的情况下,没有一个答案有帮助。每次更新项目时,m2e都会从.classpath文件中删除该条目,从而禁用警告。

我现在已提交错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=537401

答案 9 :(得分:0)

添加到pom.xml:

<properties>
    <java.version>1.8</java.version>
</properties>

在这种情况下帮助了我,还有动态Web模块和其他问题。

答案 10 :(得分:0)

我也遇到过这个问题! 我相信eclipse两次添加相同的deps。 一次在

  

Maven Dependencies

的形式组和另一组
  

M2_REPO / ...

您必须删除

中的最后一个
  

属性 - &gt; Java Buil Path - &gt;库

错误消失!

答案 11 :(得分:0)

使用Eclipse Photon,以下配置为我解决了该问题: Window > Preferences > Maven > Java EE Integration > Enable Java EE Configuration

请注意,在收到警告之前,我禁用了此选项 Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported

如果不需要其他所有选项,则可能不会选中。

在Maven更新后,警告不再出现。

答案 12 :(得分:0)

在项目中更新我的JDK后,我遇到了同样的问题,并通过将我的.classpath文件替换为以前的文件解决了该问题。 我注意到我的.classpath文件中有以下更改

    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>

上面的代码中缺少第二行

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

此行丢失

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
    <attributes>
        <attribute name="owner.project.facets" value="java"/>
    </attributes>
</classpathentry>

添加了这些行,因此我手动将其删除,然后它们又重新工作了。

答案 13 :(得分:-1)

窗口,首选项,验证,类路径依赖性验证器, 取消选中手动和构建

与大多数日食验证一样,这个验证已被破坏。

答案 14 :(得分:-4)

这是在Eclipse中配置的maven项目的典型问题,这些项目已更改其配置或保存不当。

通常我会编辑我的.classpath文件并检查构建路径的引用等。

所以在你的情况下,我认为你需要删除你的classpattrytry里面的那些org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER引用。