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的访问权限,但如果有人的话,我愿意提供一个包含此修复和一个特定 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,其中包含了用 depstarjaruber 版本替换的 tools.build 的示例。

by
depstar 2.1.267 版本现已提供所有更新后的文档: https://cljdoc.org/d/com.github.seancorfield/depstar/2.1.267/doc/tools-build-usage
by
即便您已经发布了新版本,但我可以确认在构建我的项目 UberJar 时,depstar 的工作表现符合预期。
by
知道了这些太好了,谢谢!
...