Discover EBuild

Welcome to the Ebuild project.

EBuild is a software build automation system. It is written in Java but is a general system that can be applied to almost any software development in its entirety.

EBuild is general in design — but owing to its origins — EBuilds 'out of the box' support for different development platfroms is Java/JVM centric. See the Supported Environments for an overview of the current level of support.

The closest analogue to EBuild in the Java world is Maven. Part of the motivation for creating EBuild was to overcome the limitations of the Maven build model, and create a more elegant, general and unobtrusive tool. See Comparisons.

Features

Here is a list of EBuild's most salient features.

Extensible

A Plugin based Architecture, means EBuild can be extended to support any development platform, and build automation tasks.

General

EBuild does not place any limits on what can be produced by a build. The Configuration system mean that projects can be built with variations (e.g. different builds for different platform, customers ... etc.)

It can be used to build more than just programs, but can be used to efficiently automate almost all development tasks e.g. project websites (such as this one), downloads, documentation, reports ... etc.

Convention over Configuration

Projects are layed out in a convention based manner both internally (their directory structure) and externally (their layout within source control). This makes development more comprehensible and simplifies the process of build automation.

Build plugins have sensible defaults where appropriate.

Clean Design

• EBuild Distinguishes between Modules and Products
• Well thought out, declarative XML based configuration
• Project meta information seperated into different files for usage, and building:
This means that Modules and Products once released are not littered with no longer relevant information on how they are to be built.

Developer Friendly

• Easy multi-module development
EBuild will resolve dependencies against modules in the Workspace or in Source Control, making it easy to develop with several interdependent modules.
• Harmonious Support for IDEs (* currently eclipse only)

Reliable Build Reproduceability

EBuild does not install itself centrally as a program. Each workspace maintains its own version of EBuild. This ensures that builds are reproducible, and cannot be broken by events elsewhere on the machine.

Compatible

EBuild supports Maven and Ivy dependencies and so can inter-operate with development based on these technologies. It also enables easy use of the many publically available modules which use these systems.

Scaleable

EBuild is scalable to large projects. Building is incremental, so only necessary projects are rebuilt.