欢迎!请访问 关于 页面了解有关此功能的一些更多信息。
如果没有使用 :replace 参数,b/copy-dir 会忠实地从源目录复制任何二进制(和文本)文件。
:replace
b/copy-dir
但是,如果提供了 :replace 参数,则在复制时会损坏任何二进制文件。它会对目录中的任何文本文件进行正确的替换。
复现步骤
mysrc
cryogen.png
(b/copy-dir :src-dirs ["mysrc"] :target-dir "newdir" :replace {"<<name>>" "me"})
newdir
无法知道文件是否是编码的字符流,因此 :replace 默认假设您正在复制文本文件。一个现有的解决方案是使用 :include 仅指定某种类型的文件,即 "**.clj"。
:include
"**.clj"
Maven 资源过滤器插件有基于文件扩展名的二进制过滤排除,这可能也是我们的一个可行方案。