I have a complex product for which I'm trying to design a build system.  The 
product consists of multiple web applications as well as libraries shared 
between those web applications.  Ideally, I'd like to treat the entire product 
as an ivy module with multiple artifacts (installers, some third party api 
libraries, etc.) versioned and distributed together.  However, given the 
complexity of the product, I'd like to break the bulid down into multuple 
pieces, especially for the libraries which are shared amongst web applications. 
 So, here's my question:
   
  1.  Is it better for each library which is shared to also be Ivy modules and 
have them published to the repository to be used by other parts of the product 
build?  My concern here is that these libraries really have no meaning outside 
of the product.
   
  Or, 
   
  2.  Is it better to treat these libraries in a special fashion?  Perhaps 
having them copied to a product only build directory and have them be picked up 
by the various web applications there.  To utilize Ivy facilities, I would 
maybe create a file system resolver with set useOrigin="true" for use by the 
web applications to find these files.
   
  The first options follows the one bulid->one build artifact pattern enforced 
by Maven, but this causes some overhead that I'm not sure is necessary.
   
  Any thoughts?
   
  Thanks for the input.
   
  Scott
   
     


Reply via email to