This repository has been archived by the owner. It is now read-only.
A replacement for 'lein new' with templates.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 1 commit ahead, 94 commits behind Raynes:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This plugin will replace Leiningen's 'new' task in Leiningen 2.0. It is currently in the experimental stage, but is absolutely usable if you want to give it a go. Be sure to send me feedback.

It is extensible via templates and has a simple API for creating them. With this new task, you can create templates for any sort of project scaffolding you can imagine, as simple or complex as you like.

By default, it includes three templates: default, plugin, and template. 'default' is the same as what Leiningen's old 'new' task spits out, while 'plugin' generates a skeleton Leiningen plugin project. 'template' is a very meta template for creating new templates!


Writing Templates

Templates are very simple. If you wanted to create a template called 'blah', you'd just need to have a file on the classpath at leiningen/new/blah.clj. Any mustache templates you intend to use would go in leiningen/new/blah/. There isn't really much to talk about. Check out for the user-level template-writing API, and check out the simple included templates for examples. When you're ready to write your template, use lein new template <name> and hack away!

While developing a template, if you're in the template project lein-newnew will pick it up and you'll be able to test it. However, if you want to use it on your system without putting it on clojars, just lein install your template and then lein plugin install mytemplate 0.1.0. This will install the template for you.

Distributing your template

Templates are just maven artifacts. Particularly, they need only be on the classpath when 'lein new' is called. So, as an awesome side-effect, you can just put your templates in a jar and toss them on clojars and have people install them like normal Leiningen plugins.


lein plugin install lein-newnew 0.1.2
lein new foo
lein new plugin lein-foo

This plugin requires Leiningen 1.6.2 or later. Please confirm that you have this version by running lein version before installing the plugin. If you install the plugin on an older version (not sure how old it has to be to cause problems), you'll probably need to uninstall the plugin and then reinstall it after upgrading. Otherwise, lein templates throws exceptions.


Copyright (C) 2011 Anthony Grimes

Distributed under the Eclipse Public License, the same as Clojure.