【问题标题】:How to create an uberjar correctly with "lein uberjar"?如何使用“lein uberjar”正确创建 uberjar?
【发布时间】:2016-07-20 03:38:37
【问题描述】:

如果我使用lein run,项目没有问题。

但是当我在lein uberjar 之后使用jave -jar blog.jar 时会发生异常。

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”的key?

【问题讨论】:

    标签: clojure leiningen luminus


    【解决方案1】:

    当您直接使用 java 时,不会提供通过 project.clj 中的环境设置提供的数据。您有责任确保对应用可见的环境设置提供所需的任何凭据或连接信息。

    它可能看起来像:

    DATABASE_URL="jdbc...." java -jar my-project-standalone.jar
    

    【讨论】:

    • 哦,我明白了。但是还有其他方便的方法来设置环境或启动 jar 吗?谢谢。
    • @Tornado 您可以将其包装在 unix-shell 脚本或 windows bat 文件中以向用户隐藏“复杂性”
    • @ChrisDevo environ 是一个工具,可让您从 project.clj 中设置的环境轻松加载内容,但当您不运行 lein 时,它无法设置 vars - environ 的预期用途是您的部署目标设置了环境变量
    • @noisesmith environ 将从多个来源加载环境变量,而不仅仅是project.clj: github.com/weavejester/environ/blob/master/environ/src/environ/…
    • @ChrisDevo 对,其中之一是我的回答中显示的环境变量 - 我根据 project.clj 中设置的环境假设已经使用了 environ
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2016-06-06
    • 2018-04-25
    • 2019-01-21
    • 2014-06-14
    相关资源
    最近更新 更多