Подтвердить что ты не робот

Создать несколько uberjars в leiningen

Я хочу создать несколько uberjars с разными точками входа main из одной базы кода. Я вижу, вы можете указать пространство имен main в качестве аргумента lein uberjar, но я не вижу способа указать результирующее имя файла или путь, поэтому они просто перезаписывают друг друга. Есть ли способ переопределить выходное имя файла или путь из командной строки?

Или есть лучший способ сделать это? Есть отдельные файлы проектов, которые ссылаются на центральный проект "библиотеки"? Если да, то какова будет физическая структура этого вида и как его построить?

4b9b3361

Ответ 1

Вы можете использовать несколько профилей 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

Ответ 2

Вот источник аннотированная ссылка, где вы можете найти опцию для указания имени вашей выходной баночки или файла 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"