leiningen - 如何为本地jar添加依赖项?
我想使用leiningen来构建和开发我的clojure项目。有没有办法修改project.clj,告诉它从本地目录中挑选一些jar?
我有一些专有的jar无法上传到公共存储库。
另外,leiningen可以用来维护clojure项目的“lib”目录吗?如果我的一堆 clojure 项目共享相同的 jar,我不想为每个项目维护一个单独的副本。
谢谢
我想使用leiningen来构建和开发我的clojure项目。有没有办法修改project.clj,告诉它从本地目录中挑选一些jar?
我有一些专有的jar无法上传到公共存储库。
另外,leiningen可以用来维护clojure项目的“lib”目录吗?如果我的一堆 clojure 项目共享相同的 jar,我不想为每个项目维护一个单独的副本。
谢谢
只需在 project.clj 文件中使用 :resource-paths。我使用它,例如连接到Siebel服务器。刚刚在我的项目目录中创建了一个资源目录,并将jar文件复制到其中。但是,当然,您可以使用更通用的目录:
(defproject test-project "0.1.0-SNAPSHOT"
:description "Blah blah blah"
...
:resource-paths ["resources/Siebel.jar" "resources/SiebelJI_enu.jar"])
然后,从lein repl中,我可以创建Siebel Data Bean实例,例如
(def sbl (com.siebel.data.SiebelDataBean.))
(.login sbl "siebelServer" "user" "password")
...
如果你有一个较新的Java版本,你当然可以在路径规范中使用通配符,如下所示,用于更通用的目录:
:resource-paths ["/tmp/SiebelJars/*"]
在项目中创建一个目录:
mkdir maven_repository
将本地 jar 添加到此存储库:
例如,以下命令将文件添加到 maven 存储库:jaad-0.8.3.jar
mvn deploy:deploy-file -Dfile=jaad-0.8.3.jar -DartifactId=jaad -Dversion=0.8.3 -DgroupId=jaad -Dpackaging=jar -Durl=file:maven_repository
将以下内容添加到project.clj
:repositories {"local" "file:maven_repository"}
现在,常规应该可以工作:lein deps
$ lein deps
Downloading: jaad/jaad/0.8.3/jaad-0.8.3.pom from local
Transferring 0K from local
[WARNING] *** CHECKSUM FAILED - Error retrieving checksum file for jaad/jaad/0.8.3/jaad-0.8.3.pom - IGNORING
警告可以忽略,因为jar将被签入项目,而不是从互联网上下载。
原始来源:使用带有 Leiningen 的本地 JAR(自复制以来已更改)