Знаток безошибочный сменный режим ветвления

Знатоком по умолчанию surefile плагин запускает тесты в изолированной (разветвленной) среде. Можно переопределить это поведение со следующей конфигурацией:

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

Если необходимо отладить тесты, Вы должны для использования этого отрывка конфигурации. Или Вы могли просто выполнить сборку знатока следующий путь:

$ mvn -Dmaven.surefire.debug tests

Это будет запускать отладчик на порте 5005.

Мой вопрос: какие преимущества обладают разветвляющуюся стратегию и почему выбран в качестве стратегии по умолчанию сборки знатока? Не не разветвляется стратегия более проста и поэтому должна использоваться в качестве значения по умолчанию (знаток является конвенцией по инструменту конфигурирования, праву)?

24
задан Pascal Thivent 6 July 2010 в 13:33
поделиться

1 ответ

Мой вопрос: какие преимущества имеет стратегия forking и почему она выбрана в качестве стратегии по умолчанию для maven build?

По умолчанию Surefire форкает ваши тесты, используя только JAR с манифестом. IMO, основные преимущества заключаются в том, что:

  1. он обеспечивает изолированную среду с каким-то "правильным" classpath.
  2. он защищает сам процесс maven (что очень хорошо, особенно если Maven работает встроенным в вашу IDE).

Разве стратегия без форков не является более простой и поэтому должна использоваться по умолчанию?

Прямая для чего? Легкой отладки внутри IDE? Я полагаю, что это не было первоначальным намерением (и я предпочитаю подключать удаленный отладчик, если возникает необходимость, и держать основной процесс Maven в безопасности).

См. также

16
ответ дан 29 November 2019 в 00:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: