buildr

Buildr, a simple, powerful and efficient build tool

Show me your build, I'll tell you how healthy your project is

Today

Common build tools

Maven

Buildr

Objective comparison : a few commands

maven buildr
mvn eclipse:eclipse buildr eclipse
mvn package -Dmaven.test.skip=true buildr package test=no
mvn test -Dtest=MyTest buildr test=MyTest
maven test:match -Dmaven.test.match="*MyTest*"

Objective comparison : a few figures

maven 1 buildr
Condor : SLOC 1053 750
Condor : number of files 43 1
Condor : total build time 12 min 2 min 30
AVSP : SLOC 19183 878
AVSP : number of files 188 1
AVSP : total build time around 1/2h 7 min
AVSP : releasing two people binome 1/2 day (unsafe) 5 min (safe)

Testimonies found on the Internet : SLOC

maven2 or ant buildr
4652 698
768 28

example

VERSION_NUMBER = "1.0.0-SNAPSHOT"
GROUP = 'barreverte.fr'
COPYRIGHT = 'Barre Verte !'

repositories.remote << 'http://www.ibiblio.org/maven2/'

desc 'buildr session'
define 'example' do
  project.version = VERSION_NUMBER
  project.group = GROUP

  compile.using :target=>'1.5', :other=>['-encoding', 'ISO8859_1'], :deprecation=>false, :debug=>true

  desc 'A lib'
  define 'A' do
    package :jar
  end

  desc 'B lib'
  define 'B' do
    compile.with project('A')
    package :jar
  end

  desc 'D lib'
  define 'D' do
    package :jar
  end

  desc 'final deliverable'
  define 'C' do
    compile.with projects('A', 'B', 'D')
    package :war
  end
end 

examples

Dark side of buildr

Neighbours

buildr, build like you code

References