Java 在IntelliJ IDEA中导入Maven依赖项
我有一个关于IntelliJ IDEA 11的小问题。我刚刚从subversion导入了一个项目——它是一个maven项目。但是我在maven库依赖项方面有一个问题,因此我无法自动包含所有maven依赖项-IDEA仅在我打开该类时显示依赖项错误/这就是我在这里得到的: 所以我希望自动添加所有依赖项-这是可能的还是我必须通过所有类文件来识别和添加maven依赖项 更新:在做了一些修改之后,我发现了如何以某种方式解决我的问题。我就是这么做的:Java 在IntelliJ IDEA中导入Maven依赖项,java,maven,intellij-idea,maven-3,Java,Maven,Intellij Idea,Maven 3,我有一个关于IntelliJ IDEA 11的小问题。我刚刚从subversion导入了一个项目——它是一个maven项目。但是我在maven库依赖项方面有一个问题,因此我无法自动包含所有maven依赖项-IDEA仅在我打开该类时显示依赖项错误/这就是我在这里得到的: 所以我希望自动添加所有依赖项-这是可能的还是我必须通过所有类文件来识别和添加maven依赖项 更新:在做了一些修改之后,我发现了如何以某种方式解决我的问题。我就是这么做的: 但我认为从逻辑上讲,它不会包含并检查新的依赖项?!。
但我认为从逻辑上讲,它不会包含并检查新的依赖项?!。。。在intelliJ-自动导出依赖项到类路径中有任何设置区域吗 尝试从IntelliJ IDEA中的Maven项目面板重新导入项目。它应该自动下载并配置
pom.xml
中定义的所有依赖项
如果出于某种原因从IDEA下载不起作用,请从命令行尝试mvn install
,看看是否可以获取依赖项
当然,所有必需的依赖项和任何自定义存储库都必须直接在
pom.xml
文件中定义。IntelliJ应该自动下载所有依赖项,并将它们添加到项目的类路径中,只要pom兼容并且所有依赖项都可用
将Maven项目导入IntelliJ时,通常会出现一个信息框,询问您是否要为Maven项目配置自动导入。这意味着,如果您对POM进行任何更改,这些更改将自动加载
您可以在文件>设置>Maven>导入中启用此功能,有一个复选框显示“自动导入Maven项目”
如果这没有帮助,那么我建议进行全面清理,然后重新开始:
- 关闭项目窗口(和IntelliJ),删除所有
文件和所有*.iml
文件夹(每个模块应有一个).idea
- 从命令行运行
mvn clean install
- 将项目重新导入IntelliJ,并在它要求您启用自动导入时予以注意
导入Maven Projects automatically(自动导入Maven项目)设置已在IntelliJ首选项中移动到构建、执行、部署>构建工具>Maven>导入。创建新项目时,只需选择以下选项: …
从外部模型导入项目
在现有外部模型(Eclipse、Maven…)上创建IDEA项目结构
从那里你会发现它非常简单。
在您的情况下,您可以关闭您的项目,只需创建一个新项目。选择项目的目录,该目录将覆盖该目录,使其成为Maven项目。如果多次导入同一路径,则导入Maven依赖项可能不起作用。这可能在导入现有maven项目后自动发生。我不明白为什么会发生这种情况,所以我倾向于认为这是一个bug 例如,如果我的项目是
hibernate
src/main
src/test
这三条路径可以作为顶部节点导入:
hibernate
src/main
src/test
如果是这种情况,依赖项看起来是正确的,但是在删除多余的路径(在这种情况下,src/main
和src/test
)之前,它们不会被使用。完成此操作后,请刷新并单击“生成”>“重建项目”。IDEA将收集依赖项
此问题的一个症状是IDEA在手动检查库时警告您存在重复路径(问题的第二个屏幕截图)
有几种方法可以在需要时重新读取依赖项。如果转到“Maven项目”选项卡,则在该选项卡的左上角有一个“重新导入所有Maven项目”图标。如果您怀疑IDEA变得混乱,可以单击“文件”>“使缓存无效”。进入项目结构,在“项目设置”、“模块”下,选择“依赖项”表。对于每个依赖项,将作用域从“Test”更改为“Compile”。如果某些maven模块没有编译,请检查它们的pom.xml是否在“忽略的文件”列表中。在IntelliJ goto 首选项->项目设置->maven->忽略的文件 并检查相关的pom.xml是否被忽略。在IntelliJ 14之前修复 文件[菜单]->设置->maven->导入并取消选中“使用maven3导入项目” ref:(可能还有其他一些想法) 固定智能J 15+ 再次遇到这种情况,这次是Intellij15,它不再有“UseMaven3 to import”选项可用。原因是有时候IntelliJ“不能正确解析maven依赖项”,如果不能正确解析其中一个依赖项,它显然会放弃所有依赖项。您可以通过打开maven项目工具窗口(查看菜单->工具窗口->maven项目)来判断情况是否如此。然后展开一个maven项目及其依赖项。如果依赖项都用红色下划线,“休斯顿,我们有问题”。 通过将鼠标悬停在项目名称本身上,实际上可以看到真正的失败 在我的例子中,它说“问题:XXX没有可用的版本”或“无法读取工件org.xy.z的描述符”参考: 和 在本例中,我似乎正在处理一个没有相关pom文件的jar(在我们的maven nexus repo中,以及我的本地存储库中)。如果这也是您的问题,“当前解决方法:如果您实际上不需要在自己的代码中使用该jar中的类(例如,仅限可传递的maven依赖项),您实际上可以从pom中注释掉它(暂时),重新加载maven项目,然后取消注释它“它的旧工作依赖性。如果您正在运行,临时添加maven传递排除也可以做到这一点
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>