我刚刚安装了标准,我希望能够从repl和其他项目中使用它.如何扩展java类路径,以便我可以从任何地方使用已安装的库?
我很感激能够轻松处理我将来工作的所有项目的答案.我正在使用leiningen,我认为当你跑步时会这样做lein install
,但要么我做错了,要么就是不够.
你必须学习基本的maven(lein使用maven under the hood)和java classpath mechanics.简要概述:
maven将依赖项存储在主文件夹中的隐藏目录.m2中.浏览文件夹,这将是有道理的.当你运行lein install
它时会将jar放在该文件夹中.尝试找到你安装的那个.但是,您使用的大多数依赖项都将位于像clojars这样的服务器上,因此您不需要像操作那样手动安装它.例如,标准就在这里.
在项目中,您需要在project.clj中添加标准作为依赖项.它看起来像这样:
(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"]])
Run Code Online (Sandbox Code Playgroud)
现在cd进入项目的根文件夹并运行lein deps
.这将下载project.clj中的依赖项,并自动将它们放在.m2中并放入项目的lib文件夹中.使用类路径设置运行启动repllein repl
使用标准的每个项目都需要将其作为依赖项添加到project.clj中
小智 5
我很感激能够轻松处理我将来工作的所有项目的答案.
不幸的是,这在JVM上是不可能的; 您无法在运行时修改类路径,因此必须为每个项目单独计算它.虽然Leiningen和cljr之类的工具在某些情况下可能提供类似的东西,但是没有系统范围的类路径:
$ lein install swank-clojure 1.3.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
这将把swank-clojure安装到〜/ .lein/plugins中,这将使它在所有Leiningen项目中作为dev-dependency使用,并且当你在项目的上下文之外进行"lein repl"时它将可用.是项目的实际依赖项需要进入该项目的project.clj文件.否则,创建在您的机器上工作但不可重复的项目会很容易.
归档时间: |
|
查看次数: |
2792 次 |
最近记录: |