NOTE:
cake and lein have joined forces, and starting with Lein 2.0, we plan to move all Flatland projects to lein.
Read this for more info: https://groups.google.com/forum/#!topic/clojure/WnnQIZipG5E
Lein is located here: https://github.com/technomancy/leiningen
Also, if you're interested, you can join the Leiningen mailing (http://groups.google.com/group/leiningen) and join us in #leiningen on irc.freenode.com too. There is also a wiki page for brainstorming version 2.0 changes (https://github.com/technomancy/leiningen/wiki/VersionTwo).
cake
is a Clojure development environment for your command line. It is a build tool, a repl, a
package manager, a script launcher, and a deployment tool mixed together and baked into a single,
delicious command, cake
.
You can use cake
with any editor, but it goes especially well with emacs,
vi, and textmate.
cake
is cross-platform. It works on OS X, Linux and Windows. Also, unlike most other JVM-based
command line tools, it is fast!
Installation
There are two ways to get Cake. If you are a user, the standalone script is easiest. If you want to
help with cake development though, you should check out the develop
branch of the git
repository. You can always access the stable version of cake, even when running from git, by adding
the -S
flag to your command.
Standalone script (stable)
Make sure ~/bin/
is in your $PATH
, then execute the following command:
curl http://ninjudd.com/cake-releases/cake -o ~/bin/cake && chmod +x ~/bin/cake
Git repository (development)
git clone git://github.com/flatland/cake.git
Symlink bin/cake
into your $PATH
.
Cake will bootstrap itself the first time it starts up.
Getting Started
Cake is compatible with most Leiningen project.clj files, so if you already have a project.clj,
you're probably ready to go. Just install Cake and then type cake
in your project root for a list
of tasks.
If you don't yet have a project.clj file, creating one is simple. Here's an example:
(defproject jiraph "0.2.7"
:description "Embedded graph db library for Clojure."
:url "http://jiraph.org"
:tasks [protobuf.tasks]
:dependencies [[clojure "1.2.0"]
[clojure-contrib "1.2.0"]
[clojure-useful "0.2.1"]
[clojure-protobuf "0.3.0"]
[tokyocabinet "1.2.3"]])
Get a list of available commands
cake help
Get detailed help on a single command
cake help command-name
Start an interactive repl with command history and tab completion:
cake repl
Run a clojure script
cake run path/to/script.clj
Create a new project in the current directory
cake new project-name
Help
For more detailed documentation, see the wiki. For questions and help, join us in #flatland on irc or send a message to the clojure-cake google group.
Contributors
- Justin Balthrop (ninjudd)
- Lance Bradley (lancepantz)
- Anthony Grimes (Raynes)
- Luke Renn (lrenn)
- David Santiago (davidsantiago)
- Alan Malloy (amalloy)
- Jeff Rose (rosejn)
- Martin Sander (marvinthepa)
YourKit
YourKit's Java Profiler was a terrific help to us in finding classloader memory leaks when we switched Cake to use a single JVM with a separate project classloader.
YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.