A tool for managing Clojure projects.
git clone https://github.com/Lokeh/plum.git ~/.plum/ # install globally ln -s ~/.plum/plum /usr/local/bin/plum # or place somewhere else on your $PATH, e.g. ~/bin/ # update and complete installation plum update # print usage plum help
Get started with Clojure development today!
plum uses the official Clojure CLI tools
deps.edn format to manage your project.
It comes built-in with common utilities like project generation, adding new dependencies, running tests, and starting a REPL.
Quick Start Guide
To get started developing Clojure with the help of
you'll first need to install the Clojure CLI tools.
Follow the Clojure Getting Started Guide and install the command line tools for your OS. To install plum, follow the instructions in the snippet at the top of this page.
To generate a new project, we can use the
plum new command:
$ plum new app my-name/my-new-app
clojure -A:plum/new app my-name/my-new-app Generating a project called my-new-app based on the 'app' template. $cd my-new-app
Adding dependencies is easy:
$ plum add clj-time "0.15.0"
clojure -A:plum/add clj-time 0.15.0 Adding dep clj-time 0.15.0 to deps.edn. Success!
To start a REPL and start exploring,
plum repl will
start Clojure with readline, syntax highlighting, and autocomplete:
$ plum repl
clojure -A:plum/repl Downloading: clj-time/clj-time/0.15.0/clj-time-0.15.0.pom from https://repo.clojars.org/ Downloading: joda-time/joda-time/2.10/joda-time-2.10.pom from https://repo1.maven.org/maven2/ Downloading: joda-time/joda-time/2.10/joda-time-2.10.jar from https://repo1.maven.org/maven2/ Downloading: clj-time/clj-time/0.15.0/clj-time-0.15.0.jar from https://repo.clojars.org/ [Rebel readline] Type :repl/help for online help info user=>
The official Clojure docs have a Learning Clojure section that goes over syntax, functions, and other important parts of the Clojure language.
The Clojure community is very rich with information. Check out the Community Resources section to find links to Slack, forums, books and other learning resources.
plum is intended to be a community project. Each
plum command is implemented as it's own project which may
have its own maintainer and contribution process. Help is always
appreciated in filing, triaging and fixing bugs and adding new
features to help make Clojure a fun, easy language to work with.
Issues can be filed on GitHub.
Questions are best answered on the Clojurians Slack
group in channel