Un outil de buildr moderne, puissant et efficace
Montre-moi ton build, je te dirai comment se porte ton projet.
maven | buildr |
---|---|
mvn eclipse:eclipse | buildr eclipse |
mvn package -Dmaven.test.skip=true | buildr package test=no |
mvn test -Dtest=MonTest | buildr test=MonTest |
maven test:match -Dmaven.test.match="*MonTest*" |
maven 1 | buildr | |
---|---|---|
Projet Condor : SLOC | 1053 | 750 |
Projet Condor : nombre de fichiers | 43 | 1 |
Projet Condor : temps de build total | 12 min | 2 min 30 |
Projet AVSP : SLOC | 19183 | 878 |
Projet AVSP : nombre fichiers | 188 | 2 |
Projet AVSP : temps de build total | difficile à estimer, mais aux environs de la 1/2h | 7 min |
Projet AVSP : temps pour faire une release | un binome pendant 1/2 journée (avec erreurs) | 5 min (safe) |
Témoignages sur Internet : nombre de lignes de code
maven2 ou ant | buildr |
---|---|
4652 | 698 |
768 | 28 |
VERSION_NUMBER = "1.0.0-SNAPSHOT" GROUP = 'barreverte.fr' COPYRIGHT = 'Barre Verte !' repositories.remote << 'http://www.ibiblio.org/maven2/' desc 'présentation buildr' define 'exemple' do project.version = VERSION_NUMBER project.group = GROUP compile.using :target=>'1.5', :other=>['-encoding', 'ISO8859_1'], :deprecation=>false, :debug=>true desc 'la lib A' define 'A' do package :jar end desc 'la lib B' define 'B' do compile.with project('A') package :jar end desc 'la lib D' define 'D' do package :jar end desc 'mon livrable final' define 'C' do compile.with projects('A', 'B', 'D') package :war end end
desc 'infrastructure commune' define 'commons' do compile.with LOG4J, MYSQL, SERVLET_API, COMMONS_LANG, XSTREAM test.with JDOM, 'jspapi:jsp-api:jar:2.0', MOCKRUNNER, SPRING, SPRING_MOCK, MOCKITO, FEST package :jar end
SPRING_DAO = Buildr::group('spring-beans', 'spring-core', 'spring-dao', 'spring-jdbc', :under=>'org.springframework', :version=>'1.2.6')
test.resources.from _(:src, :test, :data)
lib_generee = package :jar livrable = package :tgz livrable.include _('src/main/batch'), :as=>'batch' livrable.path('batch/lib').include lib_generee, compile.dependencies
check livrable, "doit embarquer le jar scala-library. Merci de verifier si votre $SCALA_HOME pointe bien vers un répertoire valide" do it.should contain('batch/lib/scala-library.jar') end
chmod 0755, Dir[_('src/main/avsp-batch/bin/*')] chmod 0644, FileList[_('src/main/avsp-batch/etc/**/*.properties')]
task :fitnesse => [:prerequis_fitnesse, :fitnesse_wiki_seul]
task :fitnesse_wiki_seul do |t| ant(t.name) do |ant| ant.taskdef :name=>'start_fitnesse', :classname=>'fitnesse.ant.StartFitnesseTask', :classpath=>FITNESSE_JAR ant.start_fitnesse :wikidirectoryrootpath=>_('src/main'), :fitnesseport=>8082 end end
bouchons = package :jar, :file=>_('target/bouchons.jar') bouchons.merge artifacts(COMMONS_HTTPCLIENT, COMMONS_LANG, LOG4J, project('commons-test'))
compile.enhance ['ma_jolie_tache_ant']
test.setup { Rake::Task['une_belle_tache_rake'].execute }
manifest['Implementation-Version'] = project.version manifest['Copyright'] = COPYRIGHT manifest['Mon-Champ-Personalise'] = TOUTE_AUTRE_VALEUR
repositories.remote << 'http://www.ibiblio.org/maven2/' repositories.remote << 'http://mirrors.ibiblio.org/pub/mirrors/maven2' repositories.remote << 'http://maven01b.serveur:8081/nexus/content/groups/public' repositories.release_to = { :url=>'sftp://maven01b.serveur:/var/maven-projets/maven', :username=>'robert.johnson', :password=>'Xroads' }
buildr, build like you code