Design - boot-clj/boot GitHub Wiki
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.