gpt4 book ai didi

maven-2 - Maven Surefire 插件 fork 模式

转载 作者:行者123 更新时间:2023-12-02 02:26:00 24 4
gpt4 key购买 nike

默认情况下,maven Surefile 插件在隔离( fork )环境中运行测试。您可以使用以下配置覆盖此行为:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>never</forkMode>
</configuration>
</plugin>
</plugins>
</build>

如果您需要调试测试,您应该使用此配置片段。或者您可以简单地按以下方式运行 Maven 构建:

$ mvn -Dmaven.surefire.debug tests

这将在端口 5005 上启动调试器。

我的问题是: fork 策略有什么好处以及为什么选择它作为 Maven 构建的默认策略?非 fork 策略不是更简单,因此应该用作默认策略(maven 是约定优于配置工具,对吧)?

最佳答案

My question is: what benefits have forking strategy and why is chosen as a default strategy for maven build?

默认情况下,Surefire 使用仅包含 list 的 JAR 来 fork 您的测试。 IMO,主要优点是:

  1. 它提供了一个隔离的环境以及某种“正确”的类路径。
  2. 它保护 Maven 进程本身(这是一件好事,特别是如果 Maven 嵌入在您的 IDE 中运行)。

Isn't nonforking strategy is more straightforward and therefore should be used as default?

直接为了什么?在 IDE 中轻松调试?我相信这不是最初的意图(如果需要的话,我更喜欢连接远程调试器并保持主 Maven 进程的安全)。

另请参阅

关于maven-2 - Maven Surefire 插件 fork 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com