【问题标题】:Clojure install project and put it on classpathClojure 安装项目并将其放在类路径中
【发布时间】:2011-02-01 01:15:41
【问题描述】:

我刚刚安装了criterium,我希望能够从repl 和其他项目中使用它。如何扩展 java 类路径以便可以在任何地方使用已安装的库?

如果我在未来从事的所有项目中都能轻松获得答案,我将不胜感激。我正在使用 leiningen,我想当你运行 lein install 时它会这样做,但要么我做错了什么,要么这还不够。

【问题讨论】:

    标签: clojure leiningen


    【解决方案1】:

    您必须学习基本的 maven(lein 在后台使用 maven)和 java 类路径机制。简要概述:

    maven 将依赖项存储在您的主文件夹中的隐藏目录 .m2 中。浏览文件夹,这将是有意义的。当您运行 lein install 时,它会将 jar 放入该文件夹中。尝试找到您安装的那个。但是,您使用的大多数依赖项都将位于 clojars 之类的服务器上,因此您不需要像以前那样手动安装它。例如,标准是here

    在您的项目中,您需要在 project.clj 中添加 criterium 作为依赖项。它看起来像这样:

    (defproject your-project "0.1.5" :description "blah" 
      :dependencies [[org.clojure/clojure "1.2.0"]
                     [org.clojure/clojure-contrib "1.2.0"]
                     [criterium "0.0.1-SNAPSHOT"]
                     ]   
      :dev-dependencies
        [[swank-clojure "1.2.1"]])
    

    现在 cd 进入项目的根文件夹并运行 lein deps。这将下载 project.clj 中的依赖项,并自动将它们放入 .m2 和项目的 lib 文件夹中。要使用类路径设置启动 repl,请运行 lein repl

    每个使用 criterium 的项目都需要将其作为依赖项添加到其 project.clj 中

    【讨论】:

      【解决方案2】:

      如果能在我未来从事的所有项目中轻松获得答案,我将不胜感激。

      不幸的是,这在 JVM 上是不可能的;您不能在运行时修改类路径,因此必须为每个项目单独计算。没有系统范围的类路径,尽管 Leiningen 和 cljr 等工具在某些情况下可能会提供类似的东西:

      $ lein install swank-clojure 1.3.0-SNAPSHOT
      

      这会将 swank-clojure 安装到 ~/.lein/plugins 中,这将使其作为开发依赖项在所有 Leiningen 项目中可用,并且在您在项目上下文之外执行“lein repl”时使其可用,但是项目的实际依赖项需要放在该项目的 project.clj 文件中。否则很容易创建在您的机器上工作但不可重复的项目。

      【讨论】:

        猜你喜欢
        • 2011-12-23
        • 2011-11-21
        • 1970-01-01
        • 1970-01-01
        • 2018-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多