Leiningen:uberjaring时如何排除依赖关系?
当使用leiningen构建Clojure应用程序时,当使用Leiningen:uberjaring时如何排除依赖关系?,jar,clojure,leiningen,Jar,Clojure,Leiningen,当使用leiningen构建Clojure应用程序时,当使用lein uberjar时,如何将某些依赖项排除在JAR文件中?使用leiningen配置文件提供的条目 :profiles {:dev {:dependencies [[ring-mock "0.1.5"] [prismatic/dommy "0.1.3"] [org.bouncycastle/bcpr
lein uberjar
时,如何将某些依赖项排除在JAR文件中?使用leiningen配置文件提供的条目
:profiles {:dev {:dependencies [[ring-mock "0.1.5"]
[prismatic/dommy "0.1.3"]
[org.bouncycastle/bcprov-jdk15on "1.50"]]}
:provided {:dependencies [[org.bouncycastle/bcprov-jdk15on "1.50"]]}}
一个常见的用例是bouncycastle
,它需要从已签名的JAR中排除,并在运行时使用自己的JAR文件从外部提供。类似于Guillermo建议修改项目的:概要文件,以包括以下内容:
:provided {:dependencies [[org.bouncycastle/bcprov-jdk15on "1.50"]
[org.bouncycastle/bcpg-jdk15on "1.50"]]}
(具体版本可能有所不同。)
问题是,如果您使用Clojure包装库(例如clj pgp
或thi.ng/crypto
),它会强制将jar包含在uberjar中,从而破坏进程
我的解决方案是在修改库的project.clj
以使用提供的依赖项之后,分叉库并将其推送到clojars
此处有更多详细信息:在项目.clj
的:依赖项下,您可以为特定JAR添加排除项,如下所示:
[测试/测试jar“1.0”:排除[样本排除/测试排除]]