在XML中用`xcop`线性化纯文本的命令行默认选项方法介绍

79 阅读1分钟

比方说,你想让xcop 检查版本库中的所有*.xml 文件,但忽略.idea/ 目录中的 XML 文件。你还想确保所有的 XML 文件在其序言中都有一个许可证。这就是你调用xcop 的方式:

$ xcop --include '*.xml' --exclude '.idea/**' \
  --license LICENSE.txt

你必须在所有调用xcop 的地方使用这组参数:在构建脚本中,在 CI/CD 管道中,以及在你的笔记本电脑上检查一切是否正确时。我们中的一些人有时会做的是创建一个新的Bash文件,名为run_xcop.sh ,其中就有这一条命令。

我建议一个更好的解决方案。你可以在版本库的根目录下创建一个.xcop 纯文本文件,把所有需要的 "默认 "命令行选项放在那里,每行一个:

--include *.xml
--exclude .idea/**
--license LICENSE.txt

现在,你可以像这样调用工具:

$ xcop

它将找到.xcop 文件,并读取其中的所有行,把每一行都当作命令行参数。它基本上会命令行中提供的内容与文件中的默认内容连接起来

我相信这种方法比YAML、JSON、XML、TOML、INI和其他配置格式要好得多,因为它不要求我们用户学习两种格式。一个用于命令行选项,另一个用于配置文件。我们只需学习一种,并且在我们 "手动 "调用工具或在文件中配置其行为的默认值时可交替使用。

顺便说一下,可以在全局范围内配置xcop 的行为,创建文件~/.xcop (在用户的主目录下)。这个文件中的默认值也将与命令行中提供的默认值以及在本地.xcop 文件中发现的默认值相连接。