What's the common way to deal with the controlling dependencies for a maven2 project that is made up of 20+ sub projects? I have the following situation using home grown solution and ant:
- the main project is comprised of about 20 components - each component has its own CVS module - some components depend on other components (either as source or as output -- e.g. cpp headers, jar lib) - there is a full build where all components are at the same version - there is a patch build where the not all components are included and each component may be using a different version - versions are transformed into CVS tags So, when I go to build I'd like to avoid having to modify 20 pom files because it is somewhat error prone. What are the common ways of dealing with this? The few I can think of are: 1. a centralized properties file that contains the version for each component. The file is fed into the top level pom and propagated downward via project inheritance. 2. consider each component as its own release and modify the tags/pom properties individually 3. have a central registry of versions and write a task which the makes each component build query the registry for its current version and dependencies. (sort of a buckminster styled solution). What solutions and patterns have worked for the large scale maven projects? ------- I do have another wrinkle, many components need to be built on specific platforms, so I need to distribute the build. I figure I'll use something like hudson to accomplish this task, but it does mean that getting the information about versions to the individual builders will be somewhat tricky. The current solution that I'm using centralized module which contains the properties for the versions, the logic for the component build process (get/issue build command/store artifacts) and then a distribution system to get the builds to the necessary builder machines. It works reasonably well, but it is a little brittle and maintaining the system for a couple of different products on a bunch of branches is effort that I'd rather not expend if something like maven or buckminster can solve this problem for me. Thanks for the help -- Peter Kahn [EMAIL PROTECTED] [EMAIL PROTECTED] http://citizenkahn.myplaxo.com Awareness - Intention - Action
