我正在尝试在竹子构建计划期间进行maven测试阶段。我的测试依赖于我在pom.xml中配置的一组环境变量。但是,这些值仅适用于一个环境,我想在多个环境(不同的主机IPS等)上执行相同的测试。我的Pom.xml看起来像这样:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<environmentVariables>
<variableName>variableValue</variableName>
</environmentVariables>
</configuration>
竹子计划的构建有一个阶段,通过一个简单的“清洁测试”来执行一个maven测试阶段&#39;命令行。我有超过10个环境变量,所以我想理想地避免将这些变量值传递给命令行,因为它会使它很长。如何配置maven surefire以包含多组环境变量(一个用于测试,一个用于prod),这样我就可以传递到命令行来获取环境变量,具体取决于我执行的竹子构建计划。所以类似于:mvn clean -D test。
答案 0 :(得分:0)
提出问题的最佳解决方案是使用配置文件过滤和属性文件。 您需要配置以下文件夹树:
您需要在资源中放置一个属性文件,并将变量值声明为配置文件资源的链接: 变量= {}值 并且您需要在每个环境的profile-resources中创建单独的属性文件。
然后将其包含在您的pom.xml文件中:
<profiles>
<profile>
<id>Name of first profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<filter.properties>env1.properties</filter.properties>
</properties>
</profile>
<profile>
<id>Name of second profile</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<filter.properties>env2.properties</filter.properties>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>src/test/profile-resources/${filter.properties}</filter>
</filters>
</build>
然后,您可以使用-P Maven命令自动调用每个配置文件,该命令可激活配置文件。 示例:mvn verify -P&#34;配置文件名称&#34;。
相关资源: