DPML Depot provides support for the management of complex multi-project builds.
- module, project and resource management
- transitive dependency management
- build automation
- multiproject sequencing
- cross-project queries
- repository-based resource management
- build customization via Ant
The project builder provides support for the building of multiple projects taking into account inter-project dependencies, production declarations, and build strategy. The builder makes extensive use of a common library to establish a index of available projects and resources, a build context, and the build system implementation.
One of the objectives of the DPML component development strategy is an effective breakdown of concerns such that you end up with small and easily understandable sub-systems. However, while individal projects are under control, the configuration management of an overall system (possibly involving several hundred sub-projects) becomes an inevitable configuration management concern.
Depot addresses overall configuration management through centralization of project information within a common build library that captures information about projects and shared resources organized and structured within distrinct modules. A build commandline tool provides support for listing of registered projects and the execution of project builds. The build tool executes builds using a plugin builder. A default build system implementation based on the Apache Ant product is included in the Depot distribution.
A framework for modularization of project structures enables the establishment and maintenance of discrete namespaces. In turn this improves the overall maintainability within large-scale projects. The Depot system maintains information about project and resources within modules and provides support for the production of a module suitable for export and use by external projects. This adds to the general integrity concerning naming, content versioning, and overall dependency management.
One of the aims of the Depot build system is the simplification of build procedures. Depot focuses on the principal of 80/20 where 80% of projects can be easily automated to extent that no build file is needed at all. For the remaining 20% Depot provides mechanisms to customize builds for those specialized requirements. Overall - the aim is to reduce the amount of information that resides in a build file and focus where possible on mechanisms that will enable consistent and reliable build automation.