Intellij Run和Maven应用程序Axecuting有什么区别

时间:2019-03-07 19:54:05

标签: maven intellij-idea

如果我在intellij中使用Maven,则当我按下运行按钮时会发生什么? 它与maven:mvn compile + mvn exec:java相同吗?如果没有,有什么区别?

1 个答案:

答案 0 :(得分:2)

结果可能会有所不同,具体取决于Maven项目的配置。检查this answer,了解IntelliJ IDEA Maven集成如何工作的详细信息。

IntelliJ IDEA Run正在使用特殊代理,该代理提供对线程转储和正常退出的支持,这对于分析应用程序锁定和测试关闭钩子很有用。该代理还可以缩短超过操作系统限制的太长的命令行,否则在运行其他命令时可能会引起问题。

IntelliJ IDEA运行/调试配置中使用的选项可能与您为mvn exec:java定义的选项不同。

编译也以不同的方式执行。 IntelliJ IDEA编译器是增量式的,可以并行构建多个模块,通常速度更快。它没有使用javac,而是通过编译器API起作用。

在大多数情况下,您的应用程序将完全相同地运行,但是请记住,编译和执行是不同的。

如果您有任何问题,并且希望IntelliJ IDEA与命令行Maven完全相同地构建和运行,那么现在有an option for that(将IDE的构建/运行操作委托给Maven)。