2024 年 Clojure 状态调研! 中分享您的想法。

欢迎!请访问 关于 页面了解有关此功能的一些更多信息。

+1
tools.build

如果没有使用 :replace 参数,b/copy-dir 会忠实地从源目录复制任何二进制(和文本)文件。

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

复现步骤

1 个答案

+2

精选
 
最佳答案

无法知道文件是否是编码的字符流,因此 :replace 默认假设您正在复制文本文件。一个现有的解决方案是使用 :include 仅指定某种类型的文件,即 "**.clj"

Maven 资源过滤器插件有基于文件扩展名的二进制过滤排除,这可能也是我们的一个可行方案。

by
有道理。在将来,有 :exclude 配合 :include 会很有帮助。
by
编辑了 by
:include 选项是关于要复制哪些文件。在这种情况下,您可能想要复制文件,但不想对其进行过滤,所以这是次要级别。我已经在 v0.6.1 中添加了一个选项 :non-replaced-exts,其默认包括在资源中找到的一些常见图像类型,包括 .png。
...