如何在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
相关产品推荐
相关产品推荐

