Leiningen在构建工作的uberjar时遇到了问题

Mat*_*ick 10 jar build clojure leiningen

我们正在努力与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主要属性的签名文件摘要无效

我对这个问题的研究并不富有成效. 显然,这是一个已知的问题,没有好的解决方案.我不明白那里的答案.

我们需要做些什么来让我们的uberjar工作?

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

Lein和java版本:

$ lein version
Leiningen 1.6.1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

Rei*_*ica 8

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

:uberjar-exclusions [#"foo.sf"] 
Run Code Online (Sandbox Code Playgroud)

这里foo.sf是你想从罐子忽略特定.SF文件.您可以通过运行来确定:

unzip -l BioClojure-1.0.0-SNAPSHOT-standalone.jar | grep -i -e "\.sf"
Run Code Online (Sandbox Code Playgroud)

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