如果我在intellij中使用Maven,则当我按下运行按钮时会发生什么?
它与maven:mvn compile
+ mvn exec:java
相同吗?如果没有,有什么区别?
答案 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)。