Как указать параметры командной строки Maven в файле POM?

У меня есть цель, которая всегда будет работать с определенными параметрами. Я не хочу указывать их снова и снова и хочу включить их в файл POM, чтобы даже когда другая цель вызывала эту цель, эти параметры рассматривались для выполнения.

Эти параметры не должны находиться в глобальной области видимости, поскольку они предназначены только для области проверки.


У меня есть код в Spring-Boot, который использует профили. Если я запускаю тест с -Dspring.profiles.active=TEST ожидаемый результат происходит. Так бегать failsafe:integration-test цель с -Dspring.profiles.active=TEST необходимо.

1 ответ

Решение

У вас есть два варианта: указать активные профили в тесте, который требует их:

@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("TEST")
public class MyServiceTest {

    @Autowired
    MyService myService;

    @Test
    public void testServiceInitialized() throws Exception {
        // ...
    }

это также позволяет IDE напрямую запускать тест.

Второй вариант - дать знать плагину failsafe о передаче этого параметра -D в тесты:

http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html

Поэтому либо установите свойство "argLine", которое содержит эти параметры, либо настройте плагин. При таком подходе эти тесты будут запускаться только с использованием maven - в IDE вам, возможно, придется воспроизвести эту конфигурацию - некоторые умные пользователи сделают это автоматически.

Если вам также нужно указать Spring boot для включения некоторых профилей, плагин spring-boot разрешает это напрямую: http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html

Другие вопросы по тегам