Update bootstrapping instructions, remove old lein.util.* references.
This commit is contained in:
parent
3ae4b06c2e
commit
1fee69f7b3
10 changed files with 37 additions and 50 deletions
56
README.md
56
README.md
|
@ -1,6 +1,7 @@
|
|||
# Leiningen
|
||||
|
||||
<img src="https://github.com/downloads/technomancy/leiningen/leiningen-banner.png" alt="Leiningen logo" title="The man himself" align="right" />
|
||||
<img src="https://github.com/downloads/technomancy/leiningen/leiningen-banner.png"
|
||||
alt="Leiningen logo" title="The man himself" align="right" />
|
||||
|
||||
> "Leiningen!" he shouted. "You're insane! They're not creatures you can
|
||||
> fight--they're an elemental--an 'act of God!' Ten miles long, two
|
||||
|
@ -28,9 +29,9 @@ can just run `lein self-install`, otherwise get the standalone jar from the
|
|||
If you have [Cygwin](http://www.cygwin.com/) you should be able to use
|
||||
the shell script above rather than the batch file.
|
||||
|
||||
The master branch is currently undergoing massive changes for
|
||||
The `master` branch is currently undergoing massive changes for
|
||||
Leiningen 2.0; you should not expect it to work. If you want to build
|
||||
from source for everyday use, use the 1.x branch.
|
||||
from source for everyday use, use the `1.x` branch.
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -59,7 +60,7 @@ You can also chain tasks together in a single command by using commas:
|
|||
$ lein clean, test foo.test-core, jar
|
||||
|
||||
Most tasks need to be run from somewhere inside a project directory to
|
||||
work, but some (`new`, `help`, `version`, `plugin`, and the
|
||||
work, but some (`new`, `help`, `version`, and the
|
||||
two-argument version of `install`) may run from anywhere.
|
||||
|
||||
The install task places shell scripts in the `~/.lein/bin`
|
||||
|
@ -99,7 +100,7 @@ You can change the configuration of your project by applying various
|
|||
profiles. Each profile is defined as a map which gets merged into your
|
||||
project map.
|
||||
|
||||
Profiles are read from 4 different locations: (in order of precedence)
|
||||
Profiles are read from 3 different locations: (in order of precedence)
|
||||
|
||||
* the `:profiles` entry in the project map
|
||||
* the `~/.lein/profiles.clj` file
|
||||
|
@ -109,10 +110,11 @@ Each of these should be a map of profile names to profile maps.
|
|||
|
||||
Note that profiles have special logic when they are merged into your
|
||||
project map: maps get merged recursively, but sets are `union`ed and
|
||||
collections are `concat`enated. Other values are simply replaced.
|
||||
Profiles take precedence in the order they are specified.
|
||||
other collections are `concat`enated. Other values are simply
|
||||
replaced. Profiles take precedence in the order they are specified.
|
||||
|
||||
To activate a profile, use the `with-profile` higher-order task:
|
||||
To activate a profile for a given run, use the `with-profile`
|
||||
higher-order task:
|
||||
|
||||
$ lein with-profile qa test :database
|
||||
|
||||
|
@ -122,14 +124,16 @@ active by default.
|
|||
|
||||
### Leiningen Plugins
|
||||
|
||||
Leiningen supports plugins which contain both new tasks and hooks that
|
||||
modify existing tasks. See
|
||||
Leiningen supports plugins which may contain both new tasks and hooks
|
||||
that modify behaivour of existing tasks. See
|
||||
[the plugins wiki page](https://github.com/technomancy/leiningen/wiki/Plugins)
|
||||
for a full list. If a plugin is needed for successful test or build
|
||||
runs, (such as `lein-tar`) then it should be added to `:plugins` in
|
||||
project.clj, but if it's for your own convenience (such as
|
||||
swank-clojure) then it should be added to the `:plugins` list in the
|
||||
`:user` profile from `~/.lein/profiles.clj`.
|
||||
`:user` profile from `~/.lein/profiles.clj`. The
|
||||
[plugin guide](https://github.com/technomancy/leiningen/blob/stable/doc/PLUGINS.md)
|
||||
explains how to write plugins.
|
||||
|
||||
## FAQ
|
||||
|
||||
|
@ -144,23 +148,11 @@ swank-clojure) then it should be added to the `:plugins` list in the
|
|||
**Q:** How should I pick my version numbers?
|
||||
**A:** Use [semantic versioning](http://semver.org).
|
||||
|
||||
**Q:** It says a required artifact is missing for "super-pom". What's that?
|
||||
**A:** The Maven API that Leiningen uses refers to your project as
|
||||
"super-pom". It's just a quirk of the API. It probably means there
|
||||
is a typo in your :dependency declaration in project.clj.
|
||||
|
||||
**Q:** What if my project depends on jars that aren't in any repository?
|
||||
**A:** The [deploy guide](https://github.com/technomancy/leiningen/blob/stable/doc/DEPLOY.md)
|
||||
explains how to set up a private repository. If you are not sharing
|
||||
them with a team you could also just [install locally](https://github.com/kumarshantanu/lein-localrepo).
|
||||
|
||||
**Q:** How do I write my own tasks?
|
||||
**A:** You can use `lein new plugin lein-myplugin` to create a new
|
||||
[plugin project](https://github.com/technomancy/leiningen/blob/stable/doc/PLUGINS.md).
|
||||
You can also include one-off tasks in your src/leiningen/ directory,
|
||||
but it's actually fairly rare to have a task that's truly unique to
|
||||
your project.
|
||||
|
||||
**Q:** I want to hack two projects in parallel, but it's annoying to switch between them.
|
||||
**A:** If you create a directory called `checkouts` in your project
|
||||
root and symlink some other project roots into it, Leiningen will
|
||||
|
@ -248,19 +240,13 @@ mailing list and mailing a SASE.
|
|||
## Building
|
||||
|
||||
You don't need to "build" Leiningen per se, but when you're using a
|
||||
checkout you will need to get its dependencies in place. In most cases
|
||||
a `lein self-install` will usually get you what you
|
||||
need. However, this will occasionally fail for very new SNAPSHOT
|
||||
versions since the standalone jar will not have been uploaded yet.
|
||||
checkout you will need to get its dependencies in place.
|
||||
|
||||
You can also use Maven, just for variety's sake:
|
||||
|
||||
$ mvn dependency:copy-dependencies
|
||||
$ mv target/dependency lib
|
||||
|
||||
Symlink `bin/lein` from your checkout into a location on the $PATH. The
|
||||
script can figure out when it's being called from inside a checkout
|
||||
and use the checkout rather than the self-install uberjar if necessary.
|
||||
Using Leiningen 1.x, run `lein deps` in the `leiningen-core`
|
||||
subproject directory. Once you do that in most cases a `bin/lein
|
||||
self-install` will usually get you what you need. However, this will
|
||||
occasionally fail for very new SNAPSHOT versions since the standalone
|
||||
jar will not have been uploaded yet.
|
||||
|
||||
## License
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
(ns leiningen.javac
|
||||
"Compile Java source files."
|
||||
(:use [leiningen.classpath :only [get-classpath-string]]
|
||||
[leiningen.util.paths :only [normalize-path]])
|
||||
;; [leiningen.util.paths :only [normalize-path]]
|
||||
)
|
||||
(:require [lancet.core :as lancet])
|
||||
(:import (java.io File)))
|
||||
|
||||
|
@ -19,7 +20,7 @@
|
|||
(merge *default-javac-options*
|
||||
(:javac-options project)
|
||||
{:destdir (:compile-path project)
|
||||
:srcdir (normalize-path (:root project) path)
|
||||
;; :srcdir (normalize-path (:root project) path)
|
||||
:classpath (get-classpath-string project)}
|
||||
(apply hash-map options)))
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
[clojure.java.shell :only [with-sh-dir]]
|
||||
[leiningen.core.eval :only [eval-in-project]]
|
||||
[leiningen.compile]
|
||||
[leiningen.test.helper :only [sample-project sample-failing-project
|
||||
tricky-name-project]]
|
||||
[leiningen.util.file :only [delete-file-recursively]])
|
||||
[leiningen.test.helper :only [sample-project delete-file-recursively
|
||||
sample-failing-project
|
||||
tricky-name-project]])
|
||||
(:require [leiningen.core.eval :as eval]))
|
||||
|
||||
(use-fixtures :each (fn [f]
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
[clojure.java.io :only [file]]
|
||||
[leiningen.deploy]
|
||||
[leiningen.core :only [read-project defproject]]
|
||||
[leiningen.util.file :only [delete-file-recursively tmp-dir]]
|
||||
[leiningen.test.helper :only [sample-project]]))
|
||||
[leiningen.test.helper :only [delete-file-recursively
|
||||
tmp-dir sample-project]]))
|
||||
|
||||
(defn- repo-path
|
||||
[relative-repo-path]
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
;; TODO: fix
|
||||
(def local-repo (io/file (System/getProperty "user.home") ".m2" "repository"))
|
||||
|
||||
(def tmp-dir (System/getProperty "java.io.tmpdir"))
|
||||
|
||||
(defn m2-dir [n v]
|
||||
(io/file local-repo
|
||||
(if (string? n) n (or (namespace n) (name n))) (name n) v))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
(ns leiningen.test.install
|
||||
(:require [leiningen.core.user :as user])
|
||||
(:use [clojure.test]
|
||||
[leiningen.install]
|
||||
[leiningen.install :exclude [tmp-dir]]
|
||||
[leiningen.test.helper]
|
||||
[clojure.java.io :only [file]]))
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
[clojure.java.io :only [file]]
|
||||
[leiningen.javac :only [javac]]
|
||||
[leiningen.core :only [read-project defproject]]
|
||||
[leiningen.util.file :only [delete-file-recursively]]
|
||||
#_[leiningen.test.helper :only [dev-deps-project]]))
|
||||
[leiningen.test.helper :only [delete-file-recursively
|
||||
#_dev-deps-project]]))
|
||||
|
||||
(deftest test-javac
|
||||
#_(delete-file-recursively (:compile-path dev-deps-project) true)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
(:require [leiningen.new])
|
||||
(:use [clojure.test]
|
||||
[clojure.java.io :only [file]]
|
||||
[leiningen.util.file :only [delete-file-recursively]]))
|
||||
[leiningen.test.helper :only [delete-file-recursively]]))
|
||||
|
||||
(deftest test-new
|
||||
(leiningen.new/new nil "test-new-proj")
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
[clojure.java.io :only [delete-file]]
|
||||
;; [leiningen.javac :only [javac]]
|
||||
[leiningen.run]
|
||||
[leiningen.util.file :only [tmp-dir]]
|
||||
[leiningen.test.helper :only [tricky-name-project]]))
|
||||
[leiningen.test.helper :only [tmp-dir tricky-name-project]]))
|
||||
|
||||
(def out-file (format "%s/lein-test" tmp-dir))
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
(:refer-clojure :exclude [test])
|
||||
(:use [clojure.test]
|
||||
[leiningen.test]
|
||||
[leiningen.util.file :only [tmp-dir]]
|
||||
[leiningen.test.helper :only [sample-no-aot-project]]))
|
||||
[leiningen.test.helper :only [tmp-dir sample-no-aot-project]]))
|
||||
|
||||
(use-fixtures :each
|
||||
(fn [f]
|
||||
|
|
Loading…
Reference in a new issue