Skip to content
This repository has been archived by the owner on Nov 10, 2017. It is now read-only.
/ graclj Public archive

UNMAINTAINED: Clojure plugin for Gradle's Software Model

License

Notifications You must be signed in to change notification settings

ajoberstar/graclj

Repository files navigation

graclj

Build Status Quality Gate Join the chat at https://gitter.im/graclj/graclj

NOTE: Use gradle-clojure instead. This is no longer maintained.

Clojure plugin for Gradle's Software Model

Just want to see how to use it? Try learning-graclj

DISCLAIMERS:

  1. Graclj should not be considered stable until 1.0.0. Until then, minor versions (e.g. 0.1.0 to 0.2.0) will contain breaking changes.
  2. Currently Graclj only works on nightly versions of Gradle. See the releases to find the appropriate Gradle version.

Goals

  • Provide a Gradle plugin for Clojure that feels native to Gradle and provides the features the Clojure community has come to expect from Leiningen and Boot.
  • Implement using the new model space in Gradle.
  • Determine if/how any work here can be ported or shared with Clojuresque. In the initial stages, this will not be attempted in order to preserve the flexibility of Graclj.

Background

Gradle has had very low adoption in the Clojure community: 2% as of the 2014 State of Clojure and 2015 State of Clojure. Clojure support is currently provided by Clojuresque, however it's development has stagnated recently.

Additionally, Gradle continues to evolve with the "foundation of Gradle 3.0" being built on the model space. Which promotes Gradle's long-standing goal of modelling the build space, while trying to make the interactions between configuration from various plugins and build scripts more understandable.

See the original thread on the Clojuresque mailing list for more detail.

Current Features

Clojure

  • Packaging into JARs
  • AOT compilation
  • clojure.test execution
  • Publishing to any repo supported by Gradle (including Clojars)

Clojurescript

Coming soon...

Roadmap

  • 0.2.0 will enhance Clojure support with things like uberjar and REPL support
  • 0.3.0 will target ClojureScript builds with the same goal. This is not intended to reconcile the relationship between the two.
  • ...
  • 1.0.0 ... many more great things ...