Software:Apache Buildr

From HandWiki
Short description: Open-source build system
Apache Buildr
Apache Buildr logo
Developer(s)Apache Software Foundation
Final release
1.5.8 / July 14, 2019; 4 years ago (2019-07-14)[1]
RepositoryBuildr Repository
Written inRuby
Operating systemCross-platform
TypeBuild tool
LicenseApache License 2.0
Websitebuildr.apache.org

Buildr was an open-source build system mainly intended to build Java applications. It gave the developer a full-blown scripting language (Ruby) while writing their build scripts, which are usually missing in XML-based building environments such as Apache Ant or Apache Maven. The Apache Buildr project has been retired in July 2022.


Overview

Buildr is based on Ruby's build system Rake, and uses Ruby as a scripting language. It uses several project automation idioms from Maven like automated artifact management (Buildr is out-of-box compatible with Maven's repositories). As opposed to the more imperative style of build systems like Ant, Buildr takes a more declarative approach in describing the project automation logic (similarly to Maven).

Though Buildr's general philosophy is similar to Maven, it uses Ruby's scripting possibilities to provide a more flexible and customizable programming model.[citation needed] The user writes a Ruby build script, declaring a project, its sub-projects, artifacts, dependencies, packaging rules, etc. Based on these declarations, a list of standard targets are provided to compile or package the project, upload a prepared package to a remote repository, clean up the build results, run tests and so on. Hooks are provided to execute custom Ruby code before or after the standard targets, allowing the user to comfortably override any defaults and further specify the behavior of the standard targets. New, completely user-written targets can be added.

Supported technologies

While being mainly designed for Java, Buildr also knows how to invoke compilers for Groovy or Scala. It is also easily extendible with any custom tasks to invoke any third compiler, making it a universal, general-purpose build system. As compared with writing custom plug-ins for Ant, Ruby's flexibility and rich library make it easier and quicker to extend Buildr in any desired way.

Buildr also comes with out-of-box support technologies like Cobertura, Emma, JUnit, TestNG, JBehave, JMock. Integration with Ant is also provided.

See also

References

External links