我刚刚从subversion导入了一个项目到IntelliJ IDEA 11——这是一个maven项目。但是我在maven库依赖关系中有一个问题,所以我不能自动包括所有maven依赖关系- IDEA只在我打开该类时显示依赖错误/这就是我在这里得到的:

所以我想要自动添加所有依赖项-这是可能的还是我必须遍历所有类文件来识别和添加maven依赖项?!

更新:在做了一些修改之后,我发现了如何以某种方式解决我的问题。我就是这么做的:

但我认为从逻辑上讲,它不会包括和检查新的依赖关系?!在intelliJ - auto export dependencies to classpath中是否有设置区域?


尝试从IntelliJ IDEA中的Maven Projects面板中重新导入项目。它应该自动下载并配置pom.xml中定义的所有依赖项。

如果由于某种原因,从IDEA下载不能工作,那么可以从命令行尝试mvn install,看看是否可以获取依赖项。

当然,所有必需的依赖项和任何自定义存储库都必须在pom.xml文件中直接定义。


只要POM是兼容的并且所有依赖项都可用,IntelliJ就应该自动下载并将所有依赖项添加到项目的类路径中。

在将Maven项目导入IntelliJ时,通常会出现一个信息框,询问您是否想为Maven项目配置Auto-Import。这意味着如果您对POM进行了任何更改,这些更改将自动加载。

你可以打开文件>设置> Maven >导入,有一个复选框说“自动导入Maven项目”。

如果这还不起作用,那么我建议彻底清理一下,重新开始:

关闭项目窗口(和IntelliJ)并删除所有*. .Iml文件和所有。idea文件夹(每个模块应该有一个) 从命令行运行mvn clean install 将项目重新导入IntelliJ,并注意当它要求您启用自动导入时

IntelliJ 2016更新:

导入Maven项目自动设置已移动到IntelliJ首选项中的构建、执行、部署>构建工具> Maven >导入。


当你创建一个新项目时,你只需要选择以下选项:

... 从外部模型导入项目 在现有的外部模型(Eclipse, Maven…)上创建IDEA项目结构 ...

你会发现从那里开始就很简单了。 在您的情况下,您可以关闭您的项目,并简单地创建一个新项目。选择项目的目录,该目录将覆盖它,使其成为Maven项目。


如果多次导入相同的路径,则导入Maven依赖项可能无法工作。这可能在导入现有maven项目后自动发生。我不知道为什么会发生这种情况,所以我倾向于认为这是一个bug。

例如,如果我的项目是

hibernate
  src/main
  src/test

这三条路径可以作为顶部节点导入:

hibernate
src/main
src/test

如果是这样的话,依赖关系看起来是正确的,但是除非删除多余的路径(在本例中,是src/main和src/test),否则不会使用它们。完成此操作后,刷新并单击Build > Rebuild Project。IDEA将拾取依赖项。

此问题的一个症状是,当您手动检查库时,IDEA会警告您有重复的路径(问题中的第二个屏幕截图)。

如果需要的话,有几种方法可以重新读取依赖项。如果您转到“Maven Projects”选项卡,在该选项卡的左上角有一个“Reimport All Maven Projects”图标。如果你怀疑IDEA变得困惑,你可以点击文件>无效缓存。


进入你的项目结构,在项目设置,模块,选择依赖表。对于每个依赖项,将范围从'Test'更改为'Compile'。


如果某些maven模块没有编译,检查它们的pom.xml是否在“被忽略的文件”列表中。在IntelliJ goto

首选项->项目设置-> maven ->忽略文件

并检查是否忽略了相关的pom.xml。


修复了IntelliJ 14之前的问题

文件[菜单]->设置-> maven ->导入和取消选中“使用maven3导入项目”

参考:http://youtrack.jetbrains.com/issue/IDEA-98425(可能也有一些其他的想法)

修正IntelliJ 15+

Ran into this again, with IntelliJ 15 this time, which has no "use maven3 to import" option available anymore. The cause was that sometimes IntelliJ "doesn't parse maven dependencies right" and if it can't parse one of them right, it gives up on all of them, apparently. You can tell if this is the case by opening the maven projects tool window (View menu -> Tool Windows -> Maven Projects). Then expand one of your maven projects and its dependencies. If the dependencies are all underlined in red, "Houston, we have a problem".

通过将鼠标移到项目名称本身上,您实际上可以看到真正的失败。

在我的实例中,它显示“问题:XXX没有可用版本”或“读取工件org.xy的描述符失败”。z"参考:https://youtrack.jetbrains.com/issue/IDEA-128846 而且 https://youtrack.jetbrains.com/issue/IDEA-152555

It seems in this case I was dealing with a jar that didn't have an associated pom file (in our maven nexus repo, and also my local repository). If this is also your problem, "urrent work around: if you do not actually need to use classes from that jar in your own code (for instance a transitive maven dependency only), you can actually get away with commenting it out from the pom (temporarily), maven project reload, and then uncomment it. Somehow after that point IntelliJ "remembers" its old working dependencies. Adding a maven transitive exclude temporarily might also do it, if you're running into it from transitive chain of dependencies."

另一件可能有帮助的事情是使用maven的“更新版本”,而不是捆绑的3.0.5。 为了将其设置为默认使用,关闭所有intellij窗口,然后打开首选项->构建,执行和部署->构建工具-> maven,并更改maven主目录,当你调整这个时,它应该在顶部显示“For default project”,尽管你也可以为特定的项目调整它,只要你在调整后“重新导入”即可。

清除缓存

删除intellij缓存文件夹(windows: HOMEPATH/。{IntellijIdea,IdeaC}XXX linux ~/. ideaic15)和/或卸载并重新安装IntelliJ本身。这也可以通过去文件[菜单]->无效缓存/重新启动....单击“无效并重新启动”。这将重新索引整个项目,并用IntelliJ解决许多难以跟踪的问题。


如果在右下角显示“2个进程正在运行……”或类似的内容,您可能只需要等待它完成,因为下载所有的jar可能需要时间。


打开IntelliJ Idea,转到 文件>其他设置>默认设置…> Maven (Preferences) >导入或| 首选项> Maven >导入

单击控制台中的Enable Auto-import。


我通过使用正确的镜像配置更新我的settings.xml文件解决了这个问题,似乎每次导入maven模块时,intellij都会尝试从存储库下载元数据。


我还补充了一下对我有用的东西:

进入IDE右侧边缘的Maven Projects侧栏,验证您的依赖项是否在模块下面正确列出。假设它们是,只需让IDEA重新导入(顶部的第一个按钮,看起来像两个蓝色箭头组成一个逆时针圆圈)。

一旦我这样做了,并让IDEA为我重新加载项目,我所有的依赖关系就神奇地被理解了。

作为参考:这是与IDEA 13.1.2


重新导入项目。如果你安装了maven插件,你可以使用这个。

右键单击项目-> Maven ->重新导入


导入项目时,选择pom.xml而不是项目目录。它应该会起作用。


在maven中,当我删除了dependencyManagement xml部分,只是在项目部分下直接有依赖项时,依赖项被包括在内


帮助我的是:

Navigage: |构建、执行、部署| Maven

指定“Maven主目录”——安装Maven的位置


我遇到了同样的问题,尝试了所有建议的方法,但都没有解决问题,我使用的是Intellij 13.1.3版

最后,在花了几个小时试图修复它之后,我决定尝试升级版本,并在14.1.4版本中打开项目,最终解决了这个问题。我认为这可能是前一个版本的bug。

我希望这能有所帮助!


对于IntelliJ 2016-2.4(我相信还有其他新版本):

查看> Tool Windows > Maven项目

在新显示的工具栏中,选择Maven设置(工具集的图标)。

当这个屏幕打开时,展开Maven菜单并单击“导入”

在这里,单击“自动导入Maven项目”。还要确保“JDK for Importer”选项与您打算使用的JDK版本匹配。

单击OK。现在转到pom.xml中的红色依赖项,选择红色灯泡,然后单击“更新Maven索引”。


我在IntelliJ 2016.3.X中遇到了一些子依赖无法解决的问题。这可以通过在设置>构建,执行,部署>构建工具> Maven中更改Maven主目录从捆绑(Maven 3)到/usr/share/ Maven来修复。

在此之后,所有子依赖项都像以前的IntelliJ版本一样得到解决。


如果其他方法都失败了,请检查本地.m2存储库中的jar文件是否确实有效且没有损坏。在我的例子中,文件还没有完全下载。


Maven -重新导入对我不起作用。 我在STS(Eclipse)中有Spring项目,我的解决方案是像这样将项目导入IDEA: 1)文件-新建-现有资源的项目…—select directory—选择Eclipse。 2)在“设置”中将Maven autoimport设置为true。 3)然后右键单击pom.xml,选择“添加为Maven项目”。 在此之后,它导入了所有内容。


问题似乎是,尽管在pom.xml中列出了依赖项,但IntelliJ IDEA在运行项目时并没有重新构建这些依赖项。

对我有用的是:

点击“运行”->编辑配置…,找到你的应用程序,确保“Before launch:”部分展开,点击绿色加号,并选择“Build Project”。


用户设置文件指定的第一个检查路径:“设置->构建,执行,开发->构建工具-> Maven”。 该字段应该有maven的settings.xml路径。此外,settings.xml应该有正确的远程存储库路径。


我的macbook也有类似的问题,只是在pom.xml中做了一个小更改,它开始下载所有依赖项:

我的windows机器的早期依赖项如下所示:

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

我只是删除了<dependencies>和</dependencies>标签,它开始下载所有依赖项:

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

我不确定它是否适合你。但对我来说很好。

谢谢


我能够通过从项目设置->模块列表中删除不必要的模块来解决这个问题。

当我从项目文件夹导入IntelliJ项目时(而不是通过打开pom.xml),这些额外的模块是由IntelliJ IDEA自动创建的。然后,在将项目声明为Maven项目之后,创建了适当的模块,现有模块与之冲突。在项目创建期间也可以排除这些模块。


我有一个类似的问题,在我的情况下,我正在使用一个自定义设置。xml,这不是从IntelliJ选择。

解决方案: 文件>设置>构建,执行,部署> Maven:用户设置文件(在这里选择我的自定义Settings .xml)。


从项目目录中删除.idea文件夹,然后将项目作为Maven项目重新导入,这对我来说是可行的。


在我的例子中,其中一个模块由于某种原因被忽略了。 要解决这个问题:右键单击有问题的模块并选择“取消忽略项目”。


我遇到了同样的问题,尝试了这里提到的所有答案,没有一个有效。

简单的解决方案是到你的项目文件夹,删除所有的。idea和。iml文件,并重新启动IntelliJ ide。它的工作原理。不需要对设置做任何操作。


我能够通过在pom.xml文件中的构建标记后添加这行代码来修复我的问题,我从我的运行项目中进行比较,发现这是不同的,现在我都很好。

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

你可能在一家公司的内部网络下工作。

如果是,下载或添加外部Maven依赖项您的settings.xml文件在用户名/<用户名>/。M2文件夹可能需要更新。

请与管理员联系以提供正确的settings.xml文件,然后将其粘贴到您的.m2文件夹中。


在我的例子中,MAVEN使用的JAVA路径没有设置为机器上配置的JAVA_HOME。因此,它甚至没有尝试下载依赖项。 我遵循的步骤解决了这个问题,

检查JAVA路径,设置>>构建>>构建工具>>导入>>导入器的JDK。指向JAVA_HOME。 mvn clean install -U 使用上述命令强制下载依赖项。 重新导入Maven项目


重新导入maven -> close-intellij ->删除全部 -。Idea-folder ->重新打开项目-> build- > build-project/build-module-'your parent module'


From maven tab click + and choose pom.xml From maven tab click download sources and documentation On project structure(where you can view project files/directories) right click the project you're trying to build and choose Build Module Project Name. From tab Run- Edit Configurations with + add Application and fill the below fields: i. Main Class- Manually choose from Project tab select the main class ii. Use classpath of module - choose the application name iii. Shorten command line - classpath file Now simply run the app.


这个问题的一个可能的模式是,你没有连接到Nexus,基本上你想在离线模式下构建项目。但是当您导入项目时,Idea会尝试自动下载Maven依赖项。和失败。您在设置中设置了脱机工作复选框,但为时已晚:在首次下载尝试中已经出现故障。这里列出的两个选项都不能解决这个问题。相反,我做了以下事情:

第一个创建空Java(不是Maven)项目 选中Maven设置中的离线工作选项 将我的项目作为Maven模块添加到这个新项目中

这样就成功了。


无效缓存为我工作:

文件>使缓存失效

检查:

清除文件系统缓存和本地历史记录 清除下载的共享索引

然后无效和重新启动


所以我在我的组织的代码库中也面临着这个问题。除了上面建议的答案之外,我们还可以调整jvm的分配池内存。这是因为,在大型代码库中引入的依赖关系的数量可能会使jvm for IDE完全无法构建项目。因此,尝试增加XMX的价值,它工作!添加-Xmx3072来解决“不构建”我的Java项目在IntelliJ的问题


3.3 IntelliJ 2020年。

这一个帮我做到了。

构建、执行、部署工具。

更改“在构建脚本中更改后重新加载项目”:

从默认的“外部更改”改为“任何更改”

有了这个,重建项目花了一段时间,但现在我可以看到IntelliJ中的Maven依赖项:


解决方案:-

进入“file -> Settings -> maven -> maven主路径” 在那里您可以找到类似的捆绑(maven 3) 选择系统中maven文件所在的maven的适当主路径 (环境变量中给出的路径) 点击应用 刷新项目。