Режим вилки плагина Maven
По умолчанию maven surefile плагин запускает тесты в изолированной (разветвленной) среде. Вы можете переопределить это поведение со следующей конфигурацией:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>never</forkMode>
</configuration>
</plugin>
</plugins>
</build>
Если вам нужно отлаживать тесты, вы должны использовать этот фрагмент конфигурации. Или вы можете просто запустить maven build следующим образом:
$ mvn -Dmaven.surefire.debug tests
Это запустит отладчик на порту 5005.
Мой вопрос: какие преимущества имеют стратегия forking и почему выбрана в качестве стратегии по умолчанию для сборки maven? Не является ли стратегия неоркинга более простой и поэтому ее следует использовать по умолчанию (maven - соглашение по настройке, справа)?
Ответы
Ответ 1
Мой вопрос: какие преимущества имеют стратегия forking и почему выбрана в качестве стратегии по умолчанию для сборки maven?
По умолчанию Surefire разворачивает ваши тесты, используя JAR только для манифеста. ИМО, основные преимущества заключаются в следующем:
- он предоставляет изолированную среду с каким-то "правильным" пути к классам.
- он защищает сам процесс maven (что хорошо, особенно если Maven работает в вашей среде IDE).
Не является ли стратегия неоркинга более простой и поэтому должна использоваться как значение по умолчанию?
Прямо для чего? Легкая отладка внутри IDE? Я считаю, что это не было первоначальным намерением (и я предпочитаю подключать удаленный отладчик, если возникнет такая необходимость, и сохранить основной процесс Maven безопасным).
См. также
Ответ 2
режим forking позволяет загрузить путь к системному классу, если он установлен на "true" или "once".
Но иногда установка режима fork = true caues, например, "слишком длинная строка сообщения" или "есть ошибки тестирования", если используется плагин maven-surefire 2.5. Чтобы избежать этой ошибки, рекомендуется использовать forkmode = никогда не использовать плагин suefire 2.5