Apache Buildr is a Ruby/JRuby-based build system for Java-based applications, including support for Scala, Groovy and a growing number of JVM languages and tools. We wanted something that's simple and intuitive to use, so we only need to tell it what to do, and it takes care of the rest. But also something we can easily extend for those one-off tasks, with a language that's a joy to use.
Special thanks to contributors to this release: Christopher Coco, Peter Donald, Kafka Liu, Dani Perez, Russell Teabeault, Antoine Toulme, Tammo Van Lessen. New in Buildr 1.4.7: * Added: BUILDR-618 pom properties feature does not support hierarchy (kafka liu) * Added: Add a Sonar extension. * Change: BUILDR-638 Update to rake 0.9.2.2 (Russell Teabeault) * Added: BUILDR-316 Add a GWT extension * Change: BUILDR-624 Update rspec version to 2.9.0 (Russell Teabeault) * Change: BUILDR-632 Update net-ssh version to 2.3.0 (Russell Teabeault) * Change: BUILDR-632 Update net-sftp version to 2.0.5 (Russell Teabeault) * Fixed: BUILDR-635 JRE container entry to be declared before user sources and dependencies (Dani Perez) * Change: BUILDR-639 Stop requiring pygmentize to run "rake -T" (Russell Teabeault) * Added: Enhance the IDEA extension to support the addition of several explicit facets such as ejb, jruby, jpa, web and gwt. * Added: Add several utility methods to IDEA extension for defining artifacts and configurations. Add some explicit methods to support a gwt configuration and a "Exploded War" artifact. * Change: Upgraded to Apache Ant 1.8.3 * Change: Default maven2 repository is now repo1.maven.org/maven2. * Change: Make minimumTokenCount and encoding configurable for the PMD/CPD action and default encoding to UTF-8 for compatibility with external tools (i.e. Jenkins) * Change: BUILDR-615 VersionRequirement.version? now returns true for versions following pattern "r9999", e.g. "r09" * Change: BUILDR-630 Run task should not add test dependencies (Russell Teabeault) * Change: BUILDR-629 JavaRunner should include target/resources in classpath (Russell Teabeault) * Fixed: BUILDR-617 pom exclusion does not work (Kafka Liu) * Added: Add a Findbugs extension. * Added: Add a Checkstyle extension. * Added: Add a JavaNCSS extension. * Added: Add a PMD extension. * Added: MultiTest framework that allows combining multiple test frameworks for a single project. * Added: Scala Specs2 framework support. * Added: Buildr.transitive() now accepts hash with :scopes, :optional and :scopes_transitive parameters * Added: Improved scala file change detection (to avoid recompiling unnecessarily) * Added: ScalaTest now automatically loads the Mockito library * Added: Enhance the Intellij IDEA extension to support the addition of "artifacts" and "configurations" to the generated project file. * Added: BUILDR-598 TestNG support for :groups and :excludegroups (Christopher Coco) * Added: BUILDR-616 Buildr development - If using rvm a default .rvmrc file would be helpful (Russell Teabeault) * Change: Scala Specs upgraded to 1.6.9 if using Scala 2.9.1 * Change: Scala 2.9.1 is now default * Change: Make it possible to parameterize the JDepend extension and control the projects that are included in the analysis and to enable support for loading a per project jdepend.properties. * Change: Parameterize the the directory where the top level cobertura tasks will generate reports. Specify using Buildr::Cobertura.report_dir = '....' * Change: Stop pretty printing the Intellij IDEA project files to avoid IDEA breaking in the presence of non-normalized whitespace content. * Change: Change the Intellij IDEA extension to always rebuild the project files. * Change: Upgrade to require atoulme-Antwrap 0.7.2 * Change: Changed the default output directory for Intellij IDEA extension to be _(:target, :main, :idea, :classes) from _(:target, :main, :java) and the default test output directory to be _(:target, :test, :idea, :classes) from _(:target, :test, :java) * Change: Upgrade to highline 1.6.2 * Change: Upgrade to jekyll 0.11.0, jekylltask 1.1.0, RedCloth 4.2.7, rdoc 3.8 for generating documentation * Change: Upgrade to require rubygems > 1.8.6 * Change: BUILDR-603 Remove install/uninstall actions from :gem packaging type * Change: BUILDR-602 Fail the build when gem dependencies are missing rather than attempting to install the dependencies * Change: BUILDR-601 Remove Buildr::Util::Gems * Change: BUILDR-600 Centralize the common ad internal requires into one location. * Change: Upgrade to JRuby 1.6.2 * Change: Move to Bundler to manage the project dependencies * Change: BUILDR-548 Remove support for JTestR as it is no longer maintained (Antoine Toulme) * Change: BUILDR-614 Buildr development - Using rvm, bundler and OSX installs the wrong rjb (Russell Teabeault) * Change: Upgrade to RJB 1.4.0 * Fixed: ArtifactNamespace fails when using artifacts with classfier. * Fixed: Buildr.artifacts() should handle any object with :to_spec method (i.e., any object that ActsAsArtifact) * Fixed: Handle HTTP Unauthorized (501) result code when downloading artifacts. * Fixed: BUILDR-611 Buildr should not unnecessarily recompile Java files explicitly added to compile.from * Fixed: scaladoc generation with scala 2.9.x * Fixed: Bnd Plugin: Add each artifact individually as a prerequisite to bundle / package task when passed to classpath_element method * Fixed: BUILDR-439 "The command line is too long" when running TestNG tests (Tammo Van Lessen) * Fixed: BUILDR-595 Add option to specifiy location of ca cert * Fixed: BUILDR-596 Update installation notes to talk about the all-in-one bundle