<< View previous version | view page history | view next version >>
It is quite common that a product is comprised of different components, and a component is used by different products. We suggest to set up builds for these components and products separately in this case, and utilize QuickBuild's dependency mechanism to use result of component builds in product builds.
Dependency mechanism
QuickBuild implements build dependency through a special repository type - QuickBuild Repository. Assume we have two configurations: root/product and root/component. Configuration root/product is created to build the product, and configuration root/component is created to build component. To use component artifacts, you will need to:
- Switch to repositories tab of root/product, and define a QuickBuild repository there retrieving desired files from desired build of root/component.
- Switch to steps tab of root/product, and add a checkout step into step execution graph to check out from the repository defined above.
If the product depends on multiple components, you will just need to define multiple QuickBuild repositories corresponding to these components, and add multiple checkout steps to check out from these repositories in the product configuration.
Dependency resolution
Taking the example used in the above section, before retrieving artifacts from configuration root/component, QuickBuild needs to determine which build in root/componentA to be used. The process of resolving dependency build is called dependency resolution in QuickBuild, and is controlled by the property build when define the QuickBuild repository as shown below:
Embedded help of this property explains meaning of different choices and how they affect the dependency resolution process.
Change detection
Just as other repository types, changes will be detected from QuickBuild repository if [dependent build] is triggered.