Skip to content
micha edited this page Oct 26, 2014 · 4 revisions

Tooling to build applications that run on the JVM must be able to:

  • Resolve, fetch, and deploy Maven artifacts.
  • Isolate build component classpaths from the project classpath.
  • Manage the flow of source files to compiled artifacts on disk.
  • Provide some notion of module, the building block of the build process.
  • Provide a mechanism by which one can define new modules.
  • Provide a way to arrange modules to form a build process.

Additionally, the following characteristics are desirable:

  • Ergonomic command line interface and online help documentation.
  • Minimize or eliminate redundant or arbitrary configuration for user.
  • Powerful process-building and extension capabilities.
  • A simple and easy to understand process model.
  • Minimize or eliminate coupling between modules, and between module configurations.
Clone this wiki locally