Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a standalone Clojure package within Leiningen?

After installing leiningen with this script https://raw.github.com/technomancy/leiningen/preview/bin/lein , I can use the repl by typing lein repl, so I think the clojure has already been installed by leiningen.

Do I need to download the JAR of the clojure again from the offical site?

If there's no need to do this, where's the JAR file of clojure that leiningten depends on?

like image 537
Hanfei Sun Avatar asked Aug 21 '12 22:08

Hanfei Sun


2 Answers

leiningen downloads dependencies from maven repositories and stores them (by default) in

${HOME}/.m2/repository

leiningen stores it's own jar in

${HOME}/.lein/self-installs

the default maven repositories searched by leiningen are

  • maven central (which you can browse at http://search.maven.org)
  • clojars (which you can browse at http://clojars.org)
like image 106
sw1nn Avatar answered Oct 08 '22 23:10

sw1nn


What I've found with lein is installing it and then depending on a specific version of Clojure causes that version to be fetched, and the .jar file winds up in the maven repository.

(defproject repl-test "0.0.1-SNAPSHOT"
  :description "TODO: add summary of your project"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [clojure-csv/clojure-csv "1.3.2"]
                 [org.clojure/tools.cli "0.1.0"]
                 [util "1.0.2-SNAPSHOT"]
                 [clj-http "0.1.3"]]
   :aot [repl-test.core]
   :main repl-test.core)

I'm not sure how Clojure is packaged with lein, but I do know from watching a lein build that it causes the version of Clojure in :dependencies to be fetched (downloaded).

lein is so good, that I actually un-installed default Clojure, because having lein is less of a pain when Clojure goes into a new revision.

like image 35
octopusgrabbus Avatar answered Oct 09 '22 00:10

octopusgrabbus