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。
...