动态包含和排除maven-surefire-plugin

时间:2017-07-27 20:31:16

标签: java maven

关于我是否可以为Maven Surfire插件动态更改IncludeExclude,请告诉我吗?

例如:

<build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.18.1</version>
                        <configuration>
                            <includes>
                                <include>**/${param}Spec*.*</include>
                            </includes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>

我希望在执行Maven测试命令时从命令行传递$param

如果您有解决方案,请提供建议。我尝试过arglinesystemProperties

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为没有办法传递动态参数,但如果排除/包含的组合有限,则可以使用以下技巧。 Trick正在使用具有不同组合的配置文件,如combo1,combo2等。然后,您可以使用特定的配置文件运行maven build&amp;只有那些包含/排除才有效。

Command = mvn clean package -P combo1

的pom.xml

<profiles>
    <profile>
        <id>combo1</id>
        <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.18.1</version>
                        <configuration>
                            <includes>
                                <include>**/Combo1Spec*.*</include>
                            </includes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
    </profile>

    <profile>
        <id>combo2</id>
        <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.18.1</version>
                        <configuration>
                            <includes>
                                <include>**/Combo2Spec*.*</include>
                            </includes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
    </profile>
</profiles>