|
1 | 1 | # Leiningen
|
2 | 2 |
|
3 |
| -[](https://ci.codeberg.org/leiningen/leiningen) |
4 |
| - |
5 | 3 | <img src="https://leiningen.org/img/leiningen.jpg"
|
6 | 4 | alt="Leiningen logo" title="The man himself" align="right" />
|
7 | 5 |
|
8 |
| -> "Leiningen!" he shouted. "You're insane! They're not creatures you can |
9 |
| -> fight—they're an elemental—an 'act of God!' Ten miles long, two |
10 |
| -> miles wide—ants, nothing but ants! And every single one of them a |
11 |
| -> fiend from hell..." |
12 |
| -> - from [Leiningen Versus the Ants](http://www.classicshorts.com/stories/lvta.html) by Carl Stephenson |
13 |
| -
|
14 | 6 | Leiningen is for automating Clojure projects without setting your hair on fire.
|
15 | 7 |
|
16 |
| -Note: the canonical repository for Leiningen is [on |
| 8 | +## Relocation notice! |
| 9 | + |
| 10 | +The canonical repository for Leiningen is [on |
17 | 11 | Codeberg](https://codeberg.org/leiningen/leiningen) but we maintain [a
|
18 | 12 | mirror on GitHub](https://github.com/technomancy/leiningen) for the
|
19 | 13 | time being in order to ease the transition. Please update your links
|
20 | 14 | and git remotes.
|
21 | 15 |
|
22 |
| -## Installation |
23 |
| - |
24 |
| -If your preferred |
25 |
| -[package manager](https://codeberg.org/leiningen/leiningen/wiki/Packaging) |
26 |
| -offers a recent version of Leiningen, try that first. |
27 |
| - |
28 |
| -Leiningen installs itself on the first run of the `lein` shell script; there is no |
29 |
| -separate install script. Follow these instructions to install Leiningen manually: |
30 |
| - |
31 |
| -1. Make sure you have Java installed; [OpenJDK](https://adoptium.net) is recommended |
32 |
| -2. [Download the `lein` script from the `stable` branch](https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein) |
33 |
| - of this project |
34 |
| -3. Place it on your `$PATH` (`/usr/local/bin` for example) |
35 |
| -4. Set it to be executable. (`sudo chmod +x /usr/local/bin/lein`) |
36 |
| -5. Run it. |
37 |
| - |
38 |
| -Windows users can use the above script in the Linux subsystem or try |
39 |
| -[the batch file](https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat) or |
40 |
| -[Powershell version](https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.ps1) |
41 |
| -instead. |
42 |
| - |
43 |
| -## Basic Usage |
44 |
| - |
45 |
| -The |
46 |
| -[tutorial](https://codeberg.org/leiningen/leiningen/src/stable/doc/TUTORIAL.md) |
47 |
| -has a detailed walk-through of the steps involved in creating a new |
48 |
| -project, but here are the commonly-used tasks: |
49 |
| - |
50 |
| - $ lein new [TEMPLATE] NAME # generate a new project skeleton |
51 |
| - |
52 |
| - $ lein test [TESTS] # run the tests in the TESTS namespaces, or all tests |
53 |
| - |
54 |
| - $ lein repl # launch an interactive REPL session |
55 |
| - |
56 |
| - $ lein run -m my.namespace # run the -main function of a namespace |
57 |
| - |
58 |
| - $ lein uberjar # package the project and dependencies as standalone jar |
59 |
| - |
60 |
| - $ lein deploy clojars # publish the project to Clojars as a library |
61 |
| - |
62 |
| -Use `lein help` to see a complete list. `lein help $TASK` shows the |
63 |
| -usage for a specific task. |
64 |
| - |
65 |
| -You can also chain tasks together in a single command by using the |
66 |
| -`do` task with comma-separated tasks: |
67 |
| - |
68 |
| - $ lein do clean, test foo.test-core, jar |
69 |
| - |
70 |
| -Most tasks need to be run from somewhere inside a project directory to |
71 |
| -work, but some (`new`, `help`, `search`, `version`, and `repl`) may |
72 |
| -run from anywhere. |
73 |
| - |
74 |
| -## Configuration |
75 |
| - |
76 |
| -The `project.clj` file in the project root should look like this: |
77 |
| - |
78 |
| -```clj |
79 |
| -(defproject myproject "0.5.0-SNAPSHOT" |
80 |
| - :description "A project for doing things." |
81 |
| - :license "Eclipse Public License 1.0" |
82 |
| - :url "http://codelab.org/technomancy/myproject" |
83 |
| - :dependencies [[org.clojure/clojure "1.8.0"]] |
84 |
| - :plugins [[lein-tar "3.2.0"]]) |
85 |
| -``` |
86 |
| - |
87 |
| -The `lein new` task generates a project skeleton with an appropriate |
88 |
| -starting point from which you can work. See the |
89 |
| -[sample.project.clj](https://codeberg.org/leiningen/leiningen/src/stable/sample.project.clj) |
90 |
| -file (also available via `lein help sample`) for a detailed listing of |
91 |
| -configuration options. |
92 |
| - |
93 |
| -The `project.clj` file can be customized further with the use of |
94 |
| -[profiles](https://codeberg.org/leiningen/leiningen/src/stable/doc/PROFILES.md). |
95 |
| - |
96 |
| -## Documentation |
97 |
| - |
98 |
| -Leiningen documentation is organized as a number of guides: |
99 |
| - |
100 |
| -### Usage |
101 |
| - |
102 |
| - * [Tutorial](https://codeberg.org/leiningen/leiningen/src/stable/doc/TUTORIAL.md) (start here if you are new) |
103 |
| - * [FAQ](https://codeberg.org/leiningen/leiningen/src/stable/doc/FAQ.md) |
104 |
| - * [Profiles](https://codeberg.org/leiningen/leiningen/src/stable/doc/PROFILES.md) |
105 |
| - * [Deployment & Distribution of Libraries](https://codeberg.org/leiningen/leiningen/src/stable/doc/DEPLOY.md) |
106 |
| - * [Sample project.clj](https://codeberg.org/leiningen/leiningen/src/stable/sample.project.clj) |
107 |
| - * [Polyglot (e.g. Clojure/Java) projects](https://codeberg.org/leiningen/leiningen/src/stable/doc/MIXED_PROJECTS.md) |
108 |
| - |
109 |
| -### Development |
110 |
| - |
111 |
| -* [Writing Plugins](https://codeberg.org/leiningen/leiningen/src/stable/doc/PLUGINS.md) |
112 |
| -* [Writing Templates](https://codeberg.org/leiningen/leiningen/src/stable/doc/TEMPLATES.md) |
113 |
| -* [Contributing](https://codeberg.org/leiningen/leiningen/src/stable/CONTRIBUTING.md) |
114 |
| -* [Building Leiningen](https://codeberg.org/leiningen/leiningen/src/stable/CONTRIBUTING.md#bootstrapping) |
115 |
| - |
116 |
| -## Plugins |
117 |
| - |
118 |
| -Leiningen supports plugins which may introduce new tasks. See |
119 |
| -[the plugins wiki page](https://codeberg.org/leiningen/leiningen/wiki/Plugins) |
120 |
| -for a full list. If a plugin is needed for successful test or build |
121 |
| -runs, (such as `lein-tar`) then it should be added to `:plugins` in |
122 |
| -project.clj, but if it's for your own convenience (such as |
123 |
| -`lein-pprint`) then it should be added to the `:plugins` list in the |
124 |
| -`:user` profile in `~/.lein/profiles.clj`. See the |
125 |
| -[profiles guide](https://codeberg.org/leiningen/leiningen/src/stable/doc/PROFILES.md) |
126 |
| -for details on how to add to your `:user` profile. The |
127 |
| -[plugin guide](https://codeberg.org/leiningen/leiningen/src/stable/doc/PLUGINS.md) |
128 |
| -explains how to write plugins. |
129 |
| - |
130 |
| -## License |
131 |
| - |
132 |
| -Source Copyright © 2009-2022 Phil Hagelberg, Alex Osborne, Dan Larkin, and |
133 |
| -contributors. |
134 |
| -Distributed under the Eclipse Public License, the same as Clojure |
135 |
| -uses. See the file COPYING. |
136 |
| - |
137 |
| -Thanks to Stuart Halloway for Lancet and Tim Dysinger for convincing |
138 |
| -me that good builds are important. |
139 |
| - |
140 |
| -Images Copyright © 2010 Phil Hagelberg. Distributed under the Creative |
141 |
| -Commons Attribution + ShareAlike |
142 |
| -License 4.0. [Full-size version](https://leiningen.org/img/leiningen-full.jpg) |
143 |
| -available. |
| 16 | +The repo on github will be left around for a time as a convenience |
| 17 | +offered to those who haven't yet created a Codeberg account. You can |
| 18 | +still open issues here and submit pull requests. However, be sure to |
| 19 | +branch from `main` for your pull requests instead of this branch! |
0 commit comments