Leiningen在建立一个工作uberjar有问题
我们正在尝试与Leiningen一起构建我们的Clojure项目。 通过执行以下操作,我们成功创建了uberjar:
前提条件:
:main my-project.core
中的:main my-project.core
project.core -main
功能 (:gen-class :main true)
在core.clj中 程序:
lein test
; 完成没有失败 lein deps
; 成功完成 lein uberjar
java -jar BioClojure-1.0.0-SNAPSHOT-standalone.jar
,导致这个异常: 线程“main”中的异常java.lang.SecurityException:Manifest主要属性的签名文件摘要无效
我对这个问题的研究并没有取得丰硕的成果。 显然,这是一个没有很好解决方案的已知问题。 我不明白那里的答案。
我们需要做些什么才能让我们的超级巨星工作?
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格式)。