Set up Active Dependency

Version 1 by Robin Shen
on Dec 24, 2009 08:09.


 
compared with
Current by Robin Shen
on Aug 17, 2010 09:35.


 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 2 changes. View first change.

 h1. 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.
  
 h1. Demonstration
 # To simulate new changes in componentA, _build condition_ of the [demo componentA configuration|http://demo.pmease.com/build/55.latest/] is set to _true_ so that a new componentA version will be generated whenever it is triggered.
 # Visit the demo [productA project|http://demo.pmease.com/build/56.latest/]. 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|http://demo.pmease.com/build/55.latest/] besides the new version in [productA|http://demo.pmease.com/build/56.latest/]. When new build of productA finishes, examine its dependency again, and it is now dependent on the newly generated version of componentA.
  # To simulate new changes in componentA, _build condition_ of the [demo componentA configuration|http://demo.pmease.com/dashboard/55] is set to _always build_ so that a new componentA version will be generated whenever it is triggered.
 # Visit [latest build of productA|http://demo.pmease.com/build/56:latest]. 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|http://demo.pmease.com/dashboard/55] besides the new version in [productA|http://demo.pmease.com/dashboard/56]. When new build of productA finishes, examine its dependency again, and it is now dependent on the newly generated version of componentA.
  
 h1. Resolution
 # Visit [repositories definition of productA|http://demo.pmease.com/setting/repositories/56/]. 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 definitions of productA|http://demo.pmease.com/setting/steps/execution/56/]. Two checkout steps are defined to checkout repository _product-a_ and _component-a_ respectively.
  # Visit [repository setting of productA|http://demo.pmease.com/settings/56/repositories]. 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|http://demo.pmease.com/settings/56/steps]. Two checkout steps are defined to checkout repository _product-a_ and _component-a_ respectively.