(defproject incanter-sample "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [
[incanter "1.5.0-SNAPSHOT"]]
:main incanter-sample.core)
(ns incanter-sample.core
(:gen-class))
(use '(incanter core))
(defn -main [& args]
(do
(def A (matrix [[1 2 3] [4 5 6] [7 8 9]]))
(println A)
))
"lein run"すれば行列が表示されるんだけど,"lein uberjar"してjarファイルを作ってから"java -jar"で実行すると,
java.lang.SecurityException: no manifiest section for signature file entry…
みたいな例外を吐く.
"lein uberjar"するときにで署名ファイルを除外するためには,project.cljに:uberjar-exclusions [#"除外したい署名ファイル.SF"]を追加すれば良い.
全部の署名ファイルを除外してしまうのが楽だけど,ファイルの名前が分からないので,
$ unzip -l 署名で怒られるjarファイル.jar | grep -i -e "\.sf"
を実行し,*.SFを探して:uberjar-exclusionsに渡す.
前のIncanterのサンプルでは以下のようなproject.cljを使えば良い.
(defproject incanter-sample "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [
;;[org.clojure/clojure "1.4.0"]
[incanter "1.5.0-SNAPSHOT"]]
:main incanter-sample.core
;; Same thing, but for uberjars.
:uberjar-exclusions [#"META-INF/BCKEY.SF"]
)