在leiningen创建多个uberjars

我想从一个代码库创建具有不同main入口点的uberjars。 我看到你可以指定main命名空间作为lein uberjar的参数,但是我没有看到指定结果文件名或路径的方法,所以它们只会覆盖另一个。 有没有办法覆盖命令行的输出文件名或路径?

或者有更好的方法来做到这一点? 有独立的项目文件,都参考中央“图书馆”项目? 如果是这样,这个外观的物理结构是什么,以及如何建立它?


您可以使用多个Leiningen配置文件来完成您正在谈论的内容。

(defproject project1 "0.1.0-SNAPSHOT"
  :description "Something Amazing!"
  :dependencies [[org.clojure/clojure "1.5.1"]]
  :profiles {:v1 {:main project1.core1
                  :uberjar-name "uberjar1.jar"}
             :v2 {:main project1.core2
                  :uberjar-name "uberjar2.jar"}
             :v3 {:main project1.core3
                  :uberjar-name "uberjar3.jar"}})

而且,你可以用下面的方式构建它们

$ lein with-profile v1:v2:v3 uberjar

这里有一个带注释的参考资源,您可以在其中找到一个选项,用于指定输出jar或uberjar文件的名称以及可以在project.clj文件中设置的任何其他选项。

;;; Jar Output
;; Name of the jar file produced. Will be placed inside :target-path.
;; Including %s will splice the project version into the filename.
:jar-name "sample.jar"
;; As above, but for uberjar.
:uberjar-name "sample-standalone.jar"
链接地址: http://www.djcxy.com/p/51737.html

上一篇: create multiple uberjars in leiningen

下一篇: leiningen uberjar doesn't add manifest attribute