Zi-Cljs is a maven plugin for clojurescript.
It uses the maven pom sourceDirectory
and testSourceDirectory
settings to
locate source, which by default means that it uses src/main/clojurescript
and
src/test/clojurescript
.
It requires maven 3.0.3.
This is alpha quality at present.
Why build something that Rich Hickey said he hopes he would never see? The ClojureScript compile runs on the JVM, so jars are the natural packaging for use with it. While support for clojurescript in leiningen would be very nice, it isn't there yet, and it wasn't clear (to me at least) how to add it to the current version.
zi-cljs
is intended to be used in module containing just the clojurescript
code, so that the classpath is spearate from the classpath of the server side
of your project. This also allows a disintiction in the Clojure version
used for compiling ClojureScript, and the Clojure version used on the server.
- zi-cljs:compile
- zi-cljs:browser
Globally installing the plugin allows you to run the goals without modifying a project's pom file.
To globally enable the zi-cljs plugin, you need to add pluginGroup
and
pluginRepository
configuration to your ~/.m2/settings.xml
file.
<pluginGroups>
<pluginGroup>org.cloudhoist.plugin</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>clojure-dev</id>
<pluginRepositories>
<pluginRepository>
<id>sonatype-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/releases</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>clojure-dev</activeProfile>
</activeProfiles>
To enable zi-cljs in a project pom, without globally enabling the plugin, you
will need to add a pluginRepositories
entry to your pom:
<pluginRepositories>
<pluginRepository>
<id>sonatype-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/releases</url>
</pluginRepository>
</pluginRepositories>
It uses the maven pom sourceDirectory
and testSourceDirectory
settings to
locate source, which by default means that it uses src/main/clojurescript
and
src/test/clojurescript
.
The compile goal AOT compiles clojurescript source with the closure compiler..
<build>
<plugins>
<plugin>
<groupId>org.cloudhoist.plugin</groupId>
<artifactId>zi-cljs</artifactId>
<version>0.1.0</version>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Property | Default | Description |
---|---|---|
outputFileName | ${project.build.finalName} | The target file name |
outputDirectory | ${project.build.outputDirectory} | The output directory |
debug | true | Sets the :optimisation to nil if true (overrides optimize) |
optimize | false | Sets the :optimisation to :advanced if true |
verbose | false | Sets :pretty-print to true |
targetVersion | Sets :targer to the keywordised value |
Start a repl for running on a browser. The goal writes a browser.html
file in
the target directory, and this should be loaded in the browser to connect to the
repl server started by this goal.
Property | Default | Description |
---|---|---|
port | browser.port | The port that the REPL server process should run on |
mainNamespace | ${project.name} | The namespace to be required by the REPL |
outputDirectory | ${project.build.outputDirectory} | The output directory |
Zi was a builder in northern mythology.
Licensed under EPL
Copyright 2011 Hugo Duncan.