请在 2024 年 Clojure 状态调查! 分享您的想法。

欢迎!请参阅 关于页面 了解有关此处的更多信息。

+1
tools.build

在没有 :replace 参数的情况下,b/copy-dir 会忠实地复制源目录中的任何二进制(和文本)文件。

但是,如果在提供 :replace 参数时,则在复制过程中会损坏任何二进制文件。对于目录中的任何文本文件都正确进行替换。

重现

1 回答

+2

选定的
 
最佳答案

无法确定文件是否为编码的字符流,因此 :replace 参数假定您正在复制文本文件。一个现有解决方案是使用 :include 仅指定特定类型的文件,例如 "**.clj"

Maven资源过滤插件对文件扩展名进行二进制过滤排除,这也可能是一条可行之路。

有道理。未来在":include"的基础上,再加一个":exclude"将会有所帮助。

编辑
:include 选项涉及应复制哪些文件。在这种情况下,你(我猜测)希望文件被复制,但不希望它被过滤,所以这是一个次级选择。我已经在v0.6.1版本中为这个原因添加了 :non-replaced-exts 选项,默认情况下包括资源中找到的几种常见图像类型,包括 .png。
...