Leiningen在建立一个工作uberjar有问题

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

前提条件:

  • project.clj文件列出了依赖关系
  • :main my-project.core中的:main my-project.core project.core
  • 有一个core.clj文件-main功能
  • (: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主要属性的签名文件摘要无效

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

    我们需要做些什么才能让我们的超级巨星工作?

  • 确定我们的哪些依赖造成问题?
  • 从我们的项目中删除依赖项?
  • 以其他方式编译项目?
  • 补丁leiningen?
  • 使用建议的命令: zip *-standalone.jar -d META-INF/DUMMY.SF (我不知道这是干什么的)
  • 做一些事情:uberjar-exclusions 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
    

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

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

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

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

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

    链接地址: http://www.djcxy.com/p/51729.html

    上一篇: Leiningen has problems building a working uberjar

    下一篇: How to Run Code Using Leiningen?