如何在POM文件中指定maven命令行选项?

时间:2017-04-25 11:56:07

标签: java maven spring-boot

我的目标是始终使用某些参数运行。我不想一次又一次地指定它们并希望包含在POM文件中,这样即使另一个目标调用该目标,那么这些参数也会被考虑执行。

这些参数不应该在全局范围内,因为它们仅适用于测试范围。

我在spring-boot中有一个使用配置文件的代码。如果我运行-Dspring.profiles.active=TEST预期结果的测试。因此,需要使用failsafe:integration-test运行-Dspring.profiles.active=TEST目标。

1 个答案:

答案 0 :(得分:1)

这里有两个选项:在测试中指定需要它们的活动配置文件:

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

    @Autowired
    MyService myService;

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

这也允许IDE直接运行测试。

选项二是让故障安全插件知道将-D参数传递给测试:

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

因此要么设置包含此参数的属性“argLine”,要么配置插件。使用这种方法,这些测试只能使用maven运行 - 在IDE中你可能需要重现这个配置 - 一些聪明的人会自动执行此操作。

如果你还需要告诉spring boot来启用一些配置文件,spring-boot插件可以直接允许:http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html