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
- これにより、My-Project-1.0.0-SNAPSHOT-standalone.jarとMy-Project-1.0.0-SNAPSHOT.jarの2つのjarファイルが作成されました。
- を実行し
java -jar BioClojure-1.0.0-SNAPSHOT-standalone.jar
たため、次の例外が発生しました。
スレッド"main"の例外java.lang.SecurityException:マニフェストのメイン属性の署名ファイルダイジェストが無効です
この問題に関する私の研究は実を結びませんでした。 どうやら、それは良い解決策のない既知の問題です。そこの答えがわかりません。
uberjarを機能させるには何をする必要がありますか?
- 問題の原因となっている依存関係を特定しますか?
- プロジェクトから依存関係を削除しますか?
- プロジェクトを他の方法でコンパイルしますか?
- パッチライニンゲン?
- 提案されたコマンドを使用します:(
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
更新:提案されたコマンドを実行すると、次のようになります。
$ 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