Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Fri Apr 17 17:18:44 -0700 2009 | |
| |
README.markdown | Sun Oct 25 21:31:17 -0700 2009 | |
| |
pom.xml | Thu Nov 19 02:46:35 -0800 2009 | |
| |
src/ | Thu Nov 19 03:27:01 -0800 2009 |
Welcome to the clojure-maven-plugin plugin for Apache Maven 2.
Available goals
- clojure:compile
- clojure:test
- clojure:run
- clojure:repl
- clojure:swank
- clojure:nailgun
Compiling clojure sources
To use this plugin and start compiling clojure code as part of your maven build, add the following:
<plugins>
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>clojure-maven-plugin</artifactId>
<version>1.1</version>
</plugin>
</plugins>
Without any additional configuration, the clojure-maven-plugin will compile any namespaces in ./src/main/clojure/.clj and ./src/test/clojure/.clj.
To change, or add additional source directories you can add the following configuration:
<configuration>
<sourceDirectories>
<sourceDirectory>src/main/clojure</sourceDirectory>
</sourceDirectories>
<testSourceDirectories>
<testSourceDirectory>src/test/clojure</testSourceDirectory>
</testSourceDirectories>
</configuration>
The plugin also provides a clojure:run and clojure:test goal, which will run clojure scripts defined by:
<configuration>
<script>src/test/clojure/com/jobsheet/jetty.clj</script>
<testScript>src/test/clojure/com/jobsheet/test.clj</testScript>
</configuration>
If you wish to limit or filter out namespaces during your compile, simply add a configuration section:
<configuration>
<namespaces>
<namespace>com.foo</namespace>
<namespace>net.*</namespace>
<namespace>!testing.*</namespace>
</namespaces>
</configuration>
The namespace declaration is actually a regex match against discovered namespaces, and can also be prepended with an ! to filter the matching namespace.
Enjoy.
clojure:repl, clojure:swank and clojure:nailgun goals
clojure-maven-plugin supports three goals intended to make it easier to developers to run interactive clojure shells in the context of maven projects. This means that all dependencies in a project's runtime and test scopes will be automatically added to the classpath and available for experimentation.
| Goal | Description |
|---|---|
| clojure:repl | Starts an interactive clojure REPL right on the command line. |
| clojure:swank | Starts a Swank server that accepts connections on port 4005 (can be changed using the `-Dclojure.swank.port=X`option). You can connect to this server from emacs with `M-x slime-connect`. |
| clojure:nailgun | Starts a nailgun server that accepts connections on port 2113 (can be changed using the `-Dclojure.nailgun.port=X`option). You can connect to this server from vim using vimclojure (http://kotka.de/projects/clojure/vimclojure.html). |
Dependencies
In order to run clojure:repl, clojure:swank or clojure:nailgun, your project needs to have a recent (1.0 or later) version of clojure as a dependency in pom.xml.
JLine
If JLine is detected in the classpath, it will be used to provide the clojure:repl goal with history, tab completion, etc. A simple way of enabling this is to put the following in your pom.xml:
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>0.9.94</version>
</dependency>
Swank
The clojure:swank goal requires a recent version of swank-clojure as a dependency. Unfortunatly, this library is currently not available in the central maven repository, and has to be downloaded and installed manually:
- Download
http://cloud.github.com/downloads/jochu/swank-clojure/swank-clojure-1.0-SNAPSHOT-distribution.zip - Unzip the distribution and extract the swank-clojure-1.0-SNAPSHOT.jar file within.
Run the following command to install the jar file to your local repository:
mvn install:install-file -DgroupId=com.codestuffs.clojure -DartifactId=swank-clojure -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/jarfilePut the following in your pom.xml
<dependency> <groupId>com.codestuffs.clojure</groupId> <artifactId>swank-clojure</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
Nailgun
The clojure:nailgun goal requires a recent version of vimclojure as a dependency. Unfortunatly, this library is currently not available in the central maven repository, and has to be downloaded and installed manually:
- Download vimclojure source code from
http://cloud.github.com/downloads/jochu/swank-clojure/swank-clojure-1.0-SNAPSHOT-distribution.zip. - Follow the README to compile and install vimclojure.
Locate vimclojure.jar and run the following command to install it to your local repository (replace X.X.X with your version of vimclojure):
mvn install:install-file -DgroupId=de.kotka -DartifactId=vimclojure -Dversion=X.X.X -Dpackaging=jar -Dfile=/path/to/jarfilePut the following in your pom.xml (replace X.X.X with your version of vimclojure)
<dependency> <groupId>de.kotka</groupId> <artifactId>vimclojure</artifactId> <version>X.X.X</version> </dependency>
Configuration
The following options that can be configured as system properties:
| Property | Default value | Description |
|---|---|---|
| clojure.nailgun.port | 4005 |
Only applicable for the clojure:nailgun goal.
The port number that the Nailgun server should listen to.
|
| clojure.swank.port | 4005 |
Only applicable for the clojure:swank goal.
The port number that the Swank server should listen to.
|
| clojure.swank.protocolVersion | 2009-09-14 |
Only applicable for the clojure:swank goal.
Specifies the version of the swank protocol.
|
Support
Join the discussion mailing list at:
http://groups.google.com/group/clojure-maven-plugin







