在工作中,在家里,在开源项目上,我经常面临同样的麻烦:
1.下载一个项目。我使用 Maven 从命令行编译它并成功。
1.我打开 IntelliJ:它检测一个 Maven 项目,解决它,并显示它的源代码没有错误。
1.然后我要求它“构建项目”。它失败了,显示一条描述不存在的故障的消息。
那么,我不能:
- 启动调试会话
- 从IDE运行单个测试或测试类
因为 IntelliJ 希望首先以自己的方式构建项目,但未能这样做。
如何将 IntelliJ 设置为仅使用 Maven 和指定的pom来构建/刷新项目?而不是尝试另一种方法,那不会成功?
(*)我尝试用 IntelliJ 的 Build Project 构建的项目是https://github.com/apache/spark/tree/branch-3.5,它在命令行中用 Maven 编译,用 IntelliJ 打开时显示无错误,用 Build Project 构建失败:
因为它试图做任何在任何pom中没有要求的事情。
当然,上面提到的import
确实存在。
复制:
1.下载https://github.com/apache/spark/tree/branch-3.5
1.使用 Maven 编译:编译(如果你想更快,跳过测试)
1.然后,使用 IntelliJ,尝试 Build Project 或运行测试或启动调试。它会失败的。
2条答案
按热度按时间nc1teljy1#
您列出的选项由IDEA的本地构建系统处理。本机构建系统旨在尽可能接近Maven,但对于具有更高级构建逻辑和/或结构的项目可能存在差异。
对于基于Maven的项目,最好使用来自Maven Tool Window和Maven的Run/Debug Configurations的选项。
如果您仍然遇到问题,请从
Settings / Preferences -> Build, Execution, Deployment -> Build Tools -> Maven -> Runner
启用“Delegate IDE build/run actions to Maven”选项。i2loujxw2#
Idea只是解析maven依赖项并在其own way中编译。因此,如果必须执行一些maven goal来编译项目,则可能会导致idea build失败。也许你可以直接运行一个包jar来进行调试。或者找出应该执行的maven目标。