【问题标题】:Installing libraries with leiningen without creating project使用 leiningen 安装库而不创建项目
【发布时间】:2013-05-06 07:26:15
【问题描述】:

我正在学习 Clojure,并且具有 Ruby 背景。

我正在寻找类似于gem install <library> 的东西。 lein install 的各种咒语似乎不符合这个要求。

有没有办法简单地在本地安装一个库,以便在 REPL 中引用它而不需要创建项目?

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    看起来,你想用 lein 安装一个库。这里是plugin,安装使用就好

     lein localrepo install <filename> <[groupId/]artifactId> <version>
    

    【讨论】:

      【解决方案2】:

      如果您的目标只是在 REPL 中加载库,请考虑使用 alembic。它动态加载类路径、解析依赖关系并自动从存储库中提取库。

      这是一个用例:

      (require 'alembic.still)
      (alembic.still/distill '[enlive "1.1.1"])
      

      它只需要您将以下条目添加到您的.lein/project.clj

      {:dev {:dependencies [[alembic "0.1.1"]]}}
      

      this answer

      【讨论】:

        【解决方案3】:

        Java 和因此 clojure 不一般有全局安装库的想法。您应该始终使用最少的依赖项创建一个类路径。您需要以某种方式指定和管理这个类路径,最简单的方法是使用 leiningen,这需要一个项目。

        leiningen 自动检索远程库并将它们放置在本地存储库中,这有点类似于 gem install,但这些库不会自动可供 REPL 使用。

        让一组库始终可用的最简单方法是在开始新项目之前拥有一个用于 REPL 实验的“临时”项目。开销不算太大。

        【讨论】:

          【解决方案4】:

          在 lein 2 中,您可以使用要安装的软件包更新 profiles.clj:

          ~\user\.lein\profiles.clj
          

          使用 lein 首次运行任何项目时,本地 repo 将使用profiles.clj 中增加的内容进行更新。

          有时我只是在项目文件夹中运行 lein deps,这将为您更新本地 repo。

          这样您可以将任何库添加到您的 project.clj 或从 repl 中调用它,它将从本地 repo 中提取。

          【讨论】:

            【解决方案5】:

            如果您没有项目,则将您的依赖项添加到您的全局 lein 用户配置文件中,而不是位于~/.lein/profiles.clj

            说实话,lein 的文档并不好。所以这部分很混乱。但是您像这样编辑该文件:

            {:user {:plugins [[lein-pprint "1.1.1"]]
             :dependencies [[slamhound "1.3.1"]]}} 
            

            :plugins 向量中,您可以添加任何您想要的全局 lein 插件。在:dependencies 向量中,您可以添加您希望在全球范围内可用的任何库。

            然后,无论您在哪里启动 lein repl,您都可以使用这些依赖项。无论您在哪里运行lein,您都可以使用其他插件功能。

            如果您使用 tools.deps 而不是 lein,也就是 clj 命令而不是 lein 命令。然后就有点不一样了。相反,您想修改您的 ~/.clojure/deps.edn 文件。您应该在哪里添加依赖项:

            {:deps {clj-time {:mvn/version "0.14.2"}}}
            

            因此,如果您在运行clj 命令时将上述内容放入您的用户 deps.edn,那么您将可以使用 clj-time 库。

            【讨论】:

              猜你喜欢
              • 2014-09-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-06-26
              • 2016-08-27
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多