Enterprise Build Systems; flexible automation from your desktop through CI
This tutorial will walk participants through the creation of a flexible, enterprise-grade, build system that can not only checkout, compile, and unit test your code - but also dynamically create Eclipse workspaces.
The tutorial will start with an introduction to dependency management and Ivy. This includes the key Ivy concepts of Artifacts, Configurations, Resolvers, Publishers, and Conflict Management.
From there we discuss what makes a "good" build system by way of patterns and practices.
- Managing build script dependencies
- Major build stages
- The module loop
We then begin coding build scripts starting with implementation of the major stages, and iteratively flesh out the module loop. While coding we'll cover best practices for cross-platform scripting, and approaches for handling default values and overrides from alternative invocation methods -- namely your IDE and a CI process.
With the core functionality complete we progress into advanced topics: creating a metadata repository and ways to make use of that metadata.
We'll enhance the script to add two metadata-driven features:
- Impact-tree analysis [if I change module X, what else is impacted?]
- Dynamically creating Eclipse workspaces [Please give me a workspace with X on it as source, everything else as binary]
Prerequisites: Apache Ant, Ivy, and Eclipse [current versions]