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

欢迎来到!请参阅关于页面以了解此如何工作的一些更多信息。

0
tools.build

您好,

我一直在尝试使用 tools.deps 构建uberjar,并遇到了以下异常。

Execution error (ZipException) at java.util.zip.ZipOutputStream/putNextEntry (ZipOutputStream.java:233).
duplicate entry: META-INF/MANIFEST.MF

这是因为有一个库似乎提供了一个与 clojure.tools.build.api/uber 尝试添加到 uberjar 中的META-INF/MANIFEST.MF冲突的文件。

我认为这样的文件应该默认被忽略,例如通过定义 clojure.tools.build.tasks.uber/uber-exclusions 如此:

(def ^:private uber-exclusions
  [#"project.clj"
   #"META-INF/.*\.(?:SF|RSA|DSA|MF)"])

我没有Clojure JIRA的访问权限,但如果有 someone赋予我权限,我很乐意提供一个包含此修复和针对特定的MANIFEST.MF排除的测试案例的简单补丁。

2 答案

0

在 v0.1.3 中修复,谢谢。

0

depstar有对tools.buildjaruber函数的内置替换,这些函数处理LICENSE文件的合并、一系列排除项、合并log4j2插件缓存等。请参阅https://github.com/seancorfield/depstar/blob/develop/src/hf/depstar/api.clj

目前您需要通过:git/url依赖HEAD,因为我在截取下一个发布版本之前正在重新整理所有文档,但如果您愿意尝试,我很乐意听取您的反馈。

请参考示例https://github.com/seancorfield/depstar/blob/develop/build.clj,其中是使用depstar版本的jaruber替换的tools.build示例。

即使您已经发布了新版本,我也可以确认depstar在我的项目构建uberjar时按预期工作。
知道了这些,谢谢!
...