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

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

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

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


当前回答

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

对我有用的是:

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

其他回答

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

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

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.

只要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项目。

修复了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解决许多难以跟踪的问题。