Alex Rivera | Logout

leiningen - how to add dependencies for local jars?

Asked 2010-03-08T20:18:17.547
121

I want to use leiningen to build and develop my clojure project. Is there a way to modify project.clj to tell it to pick some jars from local directories?

I have some proprietary jars that cannot be uploaded to public repos.

Also, can leiningen be used to maintain a "lib" directory for clojure projects? If a bunch of my clojure projects share the same jars, I don't want to maintain a separate copy for each of them.

Thanks

Edit
Report

1 Answer

54
  1. Create a directory in the project:

    mkdir maven_repository

  2. Add local jars to this repository:

    For example, this command adds the jaad-0.8.3.jar file to the maven repository:

    mvn deploy:deploy-file -Dfile=jaad-0.8.3.jar -DartifactId=jaad -Dversion=0.8.3 -DgroupId=jaad -Dpackaging=jar -Durl=file:maven_repository

  3. Add the following to project.clj

    :repositories {"local" "file:maven_repository"}

  4. Now a regular lein deps should work:

    $ 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

The warning can be ignored, since the jar will be checked into the project and not downloaded from the internet.

Original source: Using local JAR's with Leiningen (changed since copying)

answered 2012-03-28T23:31:54.770

Your Answer