You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Maven Enforcer的Require Files Exist规则中实现多文件二选一校验?

解决Maven Enforcer Plugin要求至少一个README文件存在的问题

默认的requireFilesExists规则会强制配置列表中的所有文件都存在,无法直接实现"任一文件存在即可"的需求。你可以改用requireTrue规则,结合Maven的文件存在表达式来实现这个逻辑:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>3.4.1</version>
    <executions>
        <execution>
            <id>enforce-readme-presence</id>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                    <requireTrue>
                        <message>项目根目录必须存在README.adoc或README.md文件</message>
                        <expression>${file.exists('${project.basedir}/README.adoc') || file.exists('${project.basedir}/README.md')}</expression>
                    </requireTrue>
                </rules>
                <fail>true</fail>
            </configuration>
        </execution>
    </executions>
</plugin>

配置说明

  • requireTrue规则通过Maven内置的file.exists()函数分别检查两个README文件的存在性,逻辑或||确保只要其中一个文件存在就通过校验。
  • <message>字段定义了校验失败时的提示文本,帮助开发者快速明确问题。
  • 建议使用3.x及以上版本的maven-enforcer-plugin,确保表达式语法正常支持。

内容的提问来源于stack exchange,提问作者pascalre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:30:48