Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported

I'm getting this warning in Eclipse:

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

After searching I found that I need fix export. I did it.

Eclipse Java Build Path properties

But this warning persists! What else can be done to fix it? Thanks.


Solution 1:

You can right click on the warning, choose quickfix and choose one of the following:

  • Mark the associated raw classpath entry as a publish/export dependency.
  • Exclude the associated raw classpath entry from the set of potential publish/export dependencies.

As you will not have eclipse publishing/exporting the project it is safe to exclude it. But either way it makes no difference

Step by step screenshots:
http://publib.boulder.ibm.com/infocenter/radhelp/v8/index.jsp?topic=/com.ibm.javaee.doc/topics/tlooseclasspath.html

Solution 2:

I had tried both of the options but only the latter is what you need:

  • Mark the associated raw classpath entry as a publish/export dependency
  • Exclude the associated raw classpath entry from the set of potential publish/export dependencies

If you export the dependency, refreshing the project configuration via Maven -> Update Project Configuration context menu will cause the warning to return. In this case you need to edit the .classpath file by hand:

<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>

Simply delete have the attribute exported="true" and confirm by refreshing the project configuration.