title: Automated Deployment solution for multiple Java web-apps
body: <p>I'm looking for solutions, preferably open source, that can manage deployments of multiple interdependent java web-applications.</p>
  
  <p><strong>The solution requires an ability to create and store a release specification containing multiple items for release - specific versions of each application and relevant other artifacts (database config, apache config etc.).</strong> </p>
  
  <p>The specification then needs to be parsed and each item then need to be deployed/executed on a target environment. Target environment is linux based. Web-apps are vanilla wars running on a j2ee standard app server. </p>
  
  <p>A lot to ask?</p>
  
  <p>Currently I think all the bits are in place - the binary artifacts are released with the <strong>maven release plugin</strong> and hence available from our <strong>maven repo</strong> for deployment, the <strong>database</strong> is versioned with <strong>dbdeploy</strong> and the <strong>apache config</strong> is versioned in <strong>svn</strong>. However I don't know of any tool that can put all these steps together on multiple applications.</p>
  
  <p>My current preferred approach is to use a form of a parameterised build for hudson to create the specification. Then a second parameterised build to select a pre-created specification   and deploy/execute it on a chosen environment.</p>
  
  <p>However this seems to be a lot of work and a less than optimal custom solution. </p>
  
  <p>Anyone know any prebuilt better ideas? or suggestions for for how to approach this - maybe a workflow engine would be better than hudson? maybe a custom web app?</p>
  
  <p>Notes:</p>
  
  <p>The target environments are prebuilt with all requirements in place - e.g. java and app server installed, database running etc. This is less of an environment configuration question and more of a deployment question.</p>
  
  <p>Automating deployment of single apps is a problem with many solutions e.g. cargo, ant deployment scripts etc. However I need something that can wrap multiple deployments. E.g. kick off cargo on specific versions of multiple apps and their requirements.</p>