【问题标题】:Leiningen has problems building a working uberjarLeiningen 在构建工作 uberjar 时遇到问题
【发布时间】:2011-12-15 02:07:32
【问题描述】:

我们正在尝试使用 Leiningen 构建我们的 Clojure 项目。我们通过执行以下操作成功创建了一个 uberjar:

前提条件:

  • project.clj 文件列出了依赖项
  • :main my-project.core 在 project.clj 中
  • 带有-main 函数的core.clj 文件
  • (:gen-class :main true) 在 core.clj 中

程序:

  • lein test;顺利完成
  • lein deps;成功完成
  • 来自 project.clj 的目录:rain lein uberjar
  • 这创建了两个 jar 文件:My-Project-1.0.0-SNAPSHOT-standalone.jar 和 My-Project-1.0.0-SNAPSHOT.jar。
  • 跑了java -jar BioClojure-1.0.0-SNAPSHOT-standalone.jar,导致了这个异常:

线程“main”java.lang.SecurityException 中的异常:Manifest 主要属性的签名文件摘要无效

我对这个问题的研究没有取得成果。 Apparently,这是一个没有好的解决方案的已知问题。我不明白那里的答案。

我们需要做什么才能让我们的 uberjar 正常工作?

  • 确定我们的哪个依赖项导致了问题?
  • 从我们的项目中删除依赖项?
  • 以其他方式编译项目?
  • 补丁 leiningen?
  • 使用建议的命令:zip *-standalone.jar -d META-INF/DUMMY.SF(我不知道这是做什么的)
  • 对 project.clj 文件中的:uberjar-exclusions 做些什么? (如果有,是什么?)

Lein 和 java 版本:

$ lein version
Leiningen 1.6.1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM

更新:运行建议的命令给出:

$ unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "\.sf"
 49911  08-27-09 15:57   META-INF/RCSB-PDB.SF
     0  03-23-10 08:21   META-INF/maven/net.sf.alxa/
     0  03-23-10 08:21   META-INF/maven/net.sf.alxa/jlatexmath/
   929  03-23-10 08:20   META-INF/maven/net.sf.alxa/jlatexmath/pom.xml
   115  03-21-10 14:01   META-INF/maven/net.sf.alxa/jlatexmath/pom.properties
175241  08-17-11 20:25   META-INF/SELFSIGN.SF
     0  09-21-09 06:45   META-INF/maven/net.sf.opencsv/
     0  09-21-09 06:45   META-INF/maven/net.sf.opencsv/opencsv/
  5510  09-21-09 06:44   META-INF/maven/net.sf.opencsv/opencsv/pom.xml
   106  09-21-09 06:45   META-INF/maven/net.sf.opencsv/opencsv/pom.properties

【问题讨论】:

    标签: build clojure jar leiningen


    【解决方案1】:

    通过阅读该问题中的 cmets,我的理解是,如果您将以下内容添加到您的 project.clj,您的问题就会消失

    :uberjar-exclusions [#"foo.sf"] 
    

    foo.sf 是您要从 jar 中忽略的特定 .sf 文件。您可以通过运行来确定这一点:

    unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "\.sf"
    

    建议的zip 命令从 jar 中删除特定文件(ZIP 格式)。

    【讨论】:

    • @MattFenwick 我相信您只想排除 RCSB-PDB.SFSELFSIGN.SF
    猜你喜欢
    • 2015-03-04
    • 2017-06-19
    • 2021-08-02
    • 2015-11-27
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多