Set up Active Dependency
Situation
ComponentA and productA build independently as different projects. During build process of ProductA, componentA will be checked for changes: if there are new changes in componentA, a new componentA version will be generated, and the new build result will be used to construct productA; otherwise, build result of latest version of componentA will be used instead.
Demonstration
- To simulate new changes in componentA, build condition of the demo componentA configuration is set to always build so that a new componentA version will be generated whenever it is triggered.
- Visit latest build of productA. Hover mouse over the dependencies link in the build summary section, and you will see that current build of productA depends on most recent version of componentA.
- Click the run button to build productA. A new version will be generated in componentA besides the new version in productA. When new build of productA finishes, examine its dependency again, and it is now dependent on the newly generated version of componentA.
Resolution
- Visit repository setting of productA. There are two repositories defined: component-a and product-a . Repository product-a is used to retrieve source code of productA from SCM, while repository component-a is used to retrieve build result of componentA. Repository component-a is defined to retrieve all published jars from componentA, with the build defined as latest build (generate new if necessary).
- Visit step setting of productA. Two checkout steps are defined to checkout repository product-a and component-a respectively.