I've used ANT on several projects in the past, and have had my eye on Maven
for a year now.  I am now working on a large project that is mostly
integration.  That is to say we are working with a few software editors (a
webmail application and a chat application) to integrate them into our
customers portal architecture.  Each software editor is modifying their
applications to support new requirements, and we're writing a relatively
small amount of code to integrate them.  For example, the webmail
application has an API which uses HTTP to return XML data.  We're writing a
protocol adapter to exposure their API as a web service.  We're also writing
some protocol adapters that will be deployed on their servers.

So far, I've set up a multi-project build for our source code.  I created a
common project, and then mail & chat directories.  Under each I have several
projects for each application.  I've found a lot of resources on doing this
and it was relatively easy to set up and it's working great.  From the top
level I can do the multi-project build.

My problem is I'm not sure how to proceed with the integration part using
Maven.  I have a couple needs:

1 - I need to deploy to the integration team our entire source code tree,
along with the deliveries from our partners (the companies that make mail &
chat).  The integration team is willing to install Maven, and they also use
ANT.  So my current thinking is to structure the tree like this:

- extern (for deliveries from our partners)
  - mail
    - a standalone application
    - a webapp
  - chat
    - static HTML
    - a web app
    - a standalone application

- our source tree
  - mail
     - a JAR to be deployed to the mail standalone app
     - a JAR to be deployed to the mail webapp
  - chat
     - a JAR to be deployed to the chat standalone app
     - a JAR to be deployed to the chat webapp
     - an EJB to be deployed to another server

Does Maven have functionality to take the applications from our partners (in
extern) and combine them with our JARS?  Like copying all this to another
top level directory, maybe "install"?  I know I can do it with ANT, but I'm
curious if Maven offers an added value here.

2 - The mail & chat apps use WebSphere & Tomcat, and databases Oracle &
MySQL.  I'm currently working on install procedures.  Using Tomcat for an
example, should I put tomcat under the extern/chat tree?  Or should
integration install their own tomcat and then copy the files from the chat
project to the appropriate tomcat directories?  The integration team wants
to do it like this, where they reassemble the parts themselves (using my
maven project).  That way they know what they have (official Tomcat release,
etc.).  On the other hand, the mail & chat companies want to deliver a
complete package that is tested and they know it works.  For example, what
if the mail application uses a modified Tomcat?  In that case we'd have to
use their Tomcat instead of installing a new one.  This complicates the
packaging a bit.

Thank you for taking the time to read this long mail, and if you have any
ideas please let me know.  I've heard from a few people that Maven works
great for simple JAR projects but it "falls apart" for complicated projects
like this.  I want to prove them wrong!  In the worst case I can have Maven
call ANT tasks.  My goal is that the integration team gets our code from CVS
and types a single command to build, test, and package our project.  I think
it's an aggressive goal but I'm certainly going to try.

Michael



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to