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

欢迎!请参阅关于页面获取更多关于如何使用本站的信息。

+1
tools.build

如果不设置:replace参数,b/copy-dir会忠实地复制来自源目录中的任何二进制文件(和文本文件)。

然而,如果提供了:replace参数,则复制时会损坏任何二进制文件。它对于目录中的任何文本文件都可以正确地执行替换。

重现

1 个回答

+2

选中
 
最佳答案

由于无法确定文件是否为编码的字节流,所以:replace默认假设你正在复制文本文件。一个现有的解决方案是使用:include仅指定某些类型的文件,例如"**.clj"

Maven资源过滤器插件在文件扩展名上具有二进制过滤排除,这可能也是我们可能采取的一条途径。

有道理。在将来,:exclude 作为 :include 的补充将是有用的。

编辑了
:include 选项是关于要复制哪些文件。在这种情况下,您(我猜)想复制文件,只是不想过滤它,因此这是次要级别。我在 v0.6.1 中添加了 :non-replaced-exts 选项,默认包含在资源中找到的几种常见图像类型,包括 .png。
...