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


We need a convenient, uniform way to build Clojure and contrib projects. Problems are

  • Team will work across many projects and will not want to lean a different approach to building each one.
  • Projects will need to work with a variety of tools: Hudson, leiningen, maven, and IDEs at a minimum. (Note that these are to some degree overlapping.)
  • Users will want an easy way to find released versions.
  • Users will want sufficiently fine granularity of releases to get things they need, without a ton of stuff they don't.
  • Team will need automation: one step to trigger an entire push/build/release cycle when necessary.
  • Clojure/core will probably want to package multiple libs into easy-to-consume distributions.

Near-term Process

  • Clojure and all contrib projects will be built using Maven 2
  • All POMs will inherit from pom.baseline or pom.contrib
  • Only Hudson will deploy releases or SNAPSHOTs
  • All builds must be configured for JDK 1.5 in Hudson
    • Snag: Current clojure-maven-plugin requires 1.6. Can still use "toolchains" to build with 1.5; need to configure in POMs.
    • Mark Derricut is preparing a version of clojure-maven-plugin targeting 1.5
  • Stable and SNAPSHOT releases will be deployed to Sonatype's OSS repository
  • Stable releases will be initiated by the M2 Release Plugin
  • Contrib projects will produce source-only JARs whenever possible
  • ZIP distributions will be generated by Maven 2 and manually uploaded to

Possible Future Development

  • Leiningen support
  • Ant build scripts for local development/testing
  • Aggregate projects that package many contrib libraries in one distribution
  • Redirect and /releases to Central or Sonatype repository