Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在IntelliJ IDEA中导入Maven依赖项_Java_Maven_Intellij Idea_Maven 3 - Fatal编程技术网

Java 在IntelliJ 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 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,并在它要求您启用自动导入时予以注意
IntelliJ 2016更新版


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