Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Buildr/Rake determine the order of execution of tasks through stated goals provided on the command-line and dependency analysis (also known as topological sorting);

Task Responsibility

Even if Buildr/Rake determine if and when a task should execute, each task is individually responsible for determining if it should do something. If its work is already done and still up-to-date, the task should typically not redo its work.

Goal OrientedGoal Orientation

Buildr will only execute tasks required to achieve the goals specified on the command-line. If a task does not execute, it's either because it's not required as part of the transitive dependencies of the stated goals, or because the task itself determined its output already exists and is up-to-date.

Supported PlatformsTask Responsibility

Buildr runs on Ruby and JRuby, which means it can run on pretty much any modern operating system;

Project Tasks

Even if Buildr/Rake determine if and when a task should execute, each task is individually responsible for determining if it should do something. If the task's output is already available and up-to-date, the task should typically not redo its work.

Project dependencies

Projects implicitly depends on their sub-projects. A project may depend on a sibling, but not on a parent.

Project Tasks

Standard project Sstandard Buidlr tasks are: compile, package, test, integration, ... TODO

...

Buildr/Rake support concurrent task execution to shorten build time. Rake's internal data structures are thread-safe with respect to concurrent task execution. However, if data is shared between potentially concurrent tasks, it's the tasks' responsibility to prevent race conditions and data corruption.

Supported Platforms

Buildr runs on Ruby and JRuby, which means it can run on pretty much any modern operating system;

Ecosystem

If Builder doesn't support a feature you need, look for:
1) an existing Buildr plugin,
2) an existing Ant task,
3) an existing Ruby gem library,
4) an existing Java library;
or write your own (smile)

...