2015-09-03 6 views
1

Как я могу создать отдельное кольцо uberjar, которое прослушивает данный порт?Clojure - Ring uberjar указать порт

При разработке я запускаю мое приложение с помощью следующей команды Leiningen/кольцо, в котором я могу указать порт:

lein with-profile dev ring server-headless 9696 

Теперь я хочу, чтобы развернуть его, так что я побежал:

lein with-profile prod ring uberjar 9696 

Но я получил ошибку:

Error encountered performing task 'ring' with profile(s): 'prod' 
clojure.lang.ArityException: Wrong number of args (2) passed to: uberjar/uberjar 

Так я добавил :port в моей project.clj:

:ring {:handler img-cli.handler/handler 
      :init img-cli.handler/init 
      :destroy img-cli.handler/destroy 
      :port 9696} 

lein with-profile prod ring uberjar 
java -jar my-jar.jar 

Но тогда я вижу в журналах: Started server on port 3000

Как генерировать uberjar с портом, что я хочу?

Примечание: на всякий случай, я использую compojure.

+0

Это работает для меня, вы скомпилировали банку после внесения изменений в project.clj? –

+1

@PauloBu Оказывается, мне пришлось использовать 'lein with-profile + prod ring uberjar 9696' (обратите внимание на' + ') – nha

ответ

0

Оказалось, что мое использование профиля было проблематичным.

А ближе смотрю на profile documentation выходах:

Чтобы активировать профиль в дополнении к значениям по умолчанию, перед именем с +:

$ lein with-profile +server run

Поэтому я должен был используйте lein with-profile +prod ring uberjar 9696 (обратите внимание на +).