我有一个用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>
具有此依赖关系的包不会在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
我通过进入项目设置 - &gt;模块并在我的各种项目之间手动添加模块依赖项来解决这个问题,直到构建完所有内容。乏味但有效。
我在这里留下这个问题,因为org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
的简短定义对我来说仍然有用。
答案 0 :(得分:3)
IntelliJ IDEA Maven-2插件将Maven-2集成到IntelliJ IDEA中。
<强>首先,强>
<强>其次,强>
<强>第三,强>
与Ant插件类似,Maven-2插件允许执行目标(或阶段)并将输出(带有错误突出显示)重定向到消息窗口。
可通过IDEAs内置插件管理器或直接从IDEA 6.0(IDEA 5.0的1.1版本)使用 {{http://plugins.intellij.net/plugin/?id=1166}}
如果您下载了该插件,只需将二进制存档的内容解压缩到您的IDEA插件目录中。 提取的文件夹(idea-maven-plugin)包含另一个文件夹lib,其中包含所有JAR。
假设您已指定环境变量JAVA_HOME和M2_HOME,则插件应该可以在没有任何进一步配置的情况下运行。 如果未定义JAVA_HOME,则插件使用内部IDEA JDK。
如果未定义M2_HOME,则必须在配置对话框中指定Maven-2的主目录。这是从插件版本1.1开始的更改。
在1.1版之前,Maven是通过普通Maven安装提供的启动脚本调用的。为了更好地访问正在运行的Maven进程,现在可以通过启动Java进程直接调用Maven。例如,这允许用户终止正在运行的Maven过程。
配置可以通过两种方式完成:
通过IDE设置或项目设置。 项目设置始终覆盖应用程序设置!
该插件不适用于6.0之前的IDEA版本! 该插件在Windows和Linux下进行了测试。它未在Mac OS X下测试。
答案 1 :(得分:1)
我想出了一个适合我的解决方案,但赏金仍然是开放的(因为我无法关闭它:P)并且会找到能够提供更详细解释的人。
解决方案:运行mvn eclipse:clean
和mvn eclipse:eclipse
。这会导致maven清除.classpath文件并从pom.xml重建它。有些神秘,它不再包含对org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER
的可怕引用。
也许这是Eclipse中不推荐使用的标记/变量。