Error formatting macro: pagetree: java.lang.NullPointerException
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Creating a Project

Create a new project directory structure like this:

myproject
myproject/src
myproject/src/main
myproject/src/main/clojure
myproject/src/test
myproject/src/test/clojure

In the top-level myproject directory, create a file named pom.xml, and copy the template below. Replace the bold-face parts with your own domain name, project name, URL, and description.

You can also replace the license name/url with a different license if you wish.

Running Clojure

To start a Clojure REPL (read-eval-print-loop) in your new project, type:

mvn clojure:repl

To start a SWANK server (for connecting to Emacs SLIME), type:

mvn clojure:swank

Then run M-x slime-connect from within Emacs

Adding Your Own Code

Add your .clj source files under src/main/clojure. When creating file names from namespace names, periods become directory separators and hyphens become underscores. So a namespace like

(ns com.example.foo-library)

Would go in the file src/main/clojure/com/example/foo_library.clj

Follow the same convention for test source code (using clojure.test), adding files under src/test/clojure.

Adding Dependencies

Open-source Java libraries can be found on search engines such as MVNrepository and Jarvana. Many Clojure libraries can be found on Clojars.

Once you have found a dependency, add its group/artifact/version information to the <dependencies> section of pom.xml.

For example, to add a dependency on Compojure, add the following code to pom.xml:

Note: Be aware that different libraries may be written for different version of Clojure. Check the library documentation to make sure you have the right version.

Using Different Clojure Versions

To use the 1.2.0 development snapshots of Clojure and clojure-contrib, change this block in pom.xml:

To this:

Labels: