【问题标题】:Running a another task when an uberjar is created with Leiningen使用 Leiningen 创建 uberjar 时运行另一个任务
【发布时间】:2015-09-22 09:31:31
【问题描述】:

创建 uberjar 后,我还需要运行 lein deps。如何让 Leiningen 在运行 lein uberjar 时自动运行 lein deps?

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    lein deps 在其他 lein 任务上自动运行,例如 run jar cljsbuild...

    事实上我从不使用lein depsexcept in lein do clean, deps

    注意:我自己只是过渡到boot,但是使用此构建工具编写任务要容易得多。

    【讨论】:

    • 运行lein deps时,lein-npm下载npm模块,运行lein uberjar时,这些模块没有下载。在运行构建 uberjar 时,我需要触发 lein deps 下载 npm 模块。这在我的机器上和 Heroku 中都不会自动发生。
    【解决方案2】:

    您可以通过do 命令让 leiningen 运行任何 lein 任务的组合。然后我们可以定义一个别名来轻松运行所需的任务。在您的 profile.clj 中包括以下内容:

    :aliases {"build-with-deps" ["do" "clean" "deps" "uberjar"]}
    

    然后,无论何时您调用 lein build-with-deps,它实际上都会运行以下命令:lein do clean, deps, uberjar

    我建议通读 leiningen 提供的示例 project.clj,以更好地熟悉别名的功能。

    【讨论】:

      猜你喜欢
      • 2015-12-09
      • 2023-03-03
      • 2017-06-19
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多