Как правильно создать uberjar с помощью "lein uberjar"?
Если я использую lein run
Проект не проблема.
Но когда я использую jave -jar blog.jar
после lein uberjar
Бывают исключения.
16-Jul-20 11:28:05 DESKTOP-C3SC9AR INFO [slf4j-timbre.adapter] - >> starting.. *db*
Exception in thread "main" java.lang.RuntimeException: could not start [*db*] due to
.....
Caused by: java.lang.Exception: :jdbc-url, :datasource, or :datasource-
И мой файл project.clj
(defproject blog "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies ....
:min-lein-version "2.0.0"
:uberjar-name "blog.jar"
:jvm-opts ["-server"]
:main blog.core
:migratus {:store :database}
:plugins [[lein-environ "1.0.1"]
[migratus-lein "0.2.0"]]
:profiles
{:uberjar {:omit-source true
:env {:production true}
:aot :all
:source-paths ["env/prod/clj"]}
:dev [:project/dev :profiles/dev]
:test [:project/test :profiles/test]
:project/dev ...
:project/test ...
:profiles/dev {:env {:database-url "jdbc:postgresql://localhost/blog?user=postgres&password=root"}}
:profiles/test {}})
Может быть, он не может найти ключ "database-url"?
1 ответ
Решение
Данные, предоставляемые через настройки среды в project.clj, не предоставляются при непосредственном использовании Java. Вы обязаны убедиться, что параметры среды, видимые приложению, предоставляют необходимые учетные данные или информацию о соединении.
Это может выглядеть примерно так:
DATABASE_URL="jdbc...." java -jar my-project-standalone.jar