簡體   English   中英

萊寧根(Leiningen)在建造能正常工作的uberjar時遇到問題

[英]Leiningen has problems building a working 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 ,導致此異常:

線程“主”中的異常java.lang.SecurityException:清單主要屬性的無效簽名文件摘要

我對這個問題的研究並未取得成果。 顯然 ,這是一個已知的問題,沒有好的解決方案。 我不明白那里的答案。

為了使uberjar正常工作,我們需要做什么?

  • 確定是哪個依賴項導致了問題?
  • 從我們的項目中刪除依賴項?
  • 用其他方式編譯項目?
  • 萊寧根補丁?
  • 使用建議的命令: zip *-standalone.jar -d META-INF/DUMMY.SF (我不知道這是做什么的)
  • 在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格式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM