如何在缺少标志的情况下使Maven构建失败

时间:2013-12-16 13:10:30

标签: maven maven-plugin maven-enforcer-plugin

如果标志“-N”( - 非递归)不存在,有没有办法失败?我正在努力做到这样的事情:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <configuration>
        <rules>
            <requireProperty>
                <property>-N</property>
                <message>Missing --non-recursive flag</message>
            </requireProperty>
        </rules>
    </configuration>
</plugin>

此强制政策位于个人资料中。如果有一种方法可以激活配置文件中的--non-recursive标志,那就没问题了。

2 个答案:

答案 0 :(得分:0)

您可以编写一个自定义的强制执行规则来检查MavenSession,并确保reactor项目列表包含一个且仅包含一个项目。这并不能保证您已使用-N调用,但它对您想要的内容同样有效。

答案 1 :(得分:0)

我遵循了一个更简单的方法:evaluateBeanshell规则。感谢Stephen Connolly的回答,我已经设法找出“递归”布尔值的位置。

<plugin>
    <artifactId>maven-enforcer-plugin</artifactId>
    <executions>
        <execution>
            <id>require non recursive flag</id>
            <phase>validate</phase>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                    <evaluateBeanshell>
                        <condition>false == ${session.request.recursive}</condition>
                        <message>Non-recursive flag is missing</message>
                    </evaluateBeanshell>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>

我认为它仅适用于maven 3。