什么是org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER以及如何在IntelliJ中使其工作?

W.P*_*ill 18 java eclipse build intellij-idea

我有一个用Eclipse编写的Java代码库,我试图在IntelliJ中使用它.代码库由大约20个Java包组成,它们彼此并行构建为单独的项目.(大约有20个目录,每个目录包含一个.classpath和一个.project文件.)它们彼此依赖.大概在Eclipse中一切都很好.

我从Eclipse构建格式中导入了IntelliJ.除了Project Settings -> Modules -> Dependencies显示许多项目具有未解决的依赖性之外,它似乎主要起作用org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER.这似乎来自.classpath文件中的以下条目:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.nondependency" value=""/>
    </attributes>
</classpathentry>
Run Code Online (Sandbox Code Playgroud)

具有此依赖关系的包不会在IntelliJ中生成,因为它们无法解析其他包的依赖关系.

我怀疑这org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER是一些特定于Eclipse的技巧,并没有转换为不同的IDE,但我无法确切地知道这里发生了什么.

什么是org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER?我是否必须对使用它来使其在Eclipse外部工作的构建环境做任何特殊操作?

IntelliJ Ultimate 2016.1.2,Java 1.8.0_91,OS X 10.11.5


我通过进入项目设置 - >模块并在我的各种项目之间手动添加模块依赖关系来解决这个问题,直到构建完所有内容.繁琐但有效.

我在这里留下这个问题,因为一个简短的定义对我org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER来说仍然有用.

Dan*_*ick 3

我已经提出了一个适合我的解决方案,但赏金仍然开放(因为我无法关闭它:P),并将交给可以提供更详细解释的人。

解决方案:运行mvn eclipse:cleanmvn eclipse:eclipse。这会导致 Maven 清除 .classpath 文件并从 pom.xml 重建它。有点神秘的是,它不再包含对 的可怕提及org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER

也许这是 Eclipse 中已弃用的标签/变量。