You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Michael Mattox <mi...@verideon.com> on 2004/04/05 01:03:49 UTC

Using Maven on a very large integration project - how far can Maven go?

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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: Using Maven on a very large integration project - how far can Maven go?

Posted by Michael MATTOX <mi...@verideon.com>.
> I think your overall approch is on target.  One of the things I have found
> easier when deploying to containers is to have Tomcat as part of CVS..  It
> gives you a lot more control over what the Tomcat environment looks like,
> isn't too large, and reduces variables.

I agree in principle.  The problem is it's not practical to put WebSphere or
Oracle in CVS.  So what I was thinking was to divide the containers into two
categories:

- versioned in CVS - for unstable, lightweight containers only.  For example
tomcat.

- an install procedure using official releases.  This would be for Oracle,
MySQL, WebSphere.

Tomcat can fall into either category, and I prefer the second.  But I'm open
to suggestions.

> Also, as far as the merging of jars, anything you can do in Ant,
> you can do
> in Maven, as Maven supports all ant tasks.  Here is an article
> that gives a
> simple example of calling the <echo/> task from Ant in Maven:
> http://www.onjava.com/pub/a/onjava/2004/03/17/maven.html.

This is a worst case, call the ANT target.  But with Maven's Jelly scripts I
wasn't sure if it'd be better to do something with ANT or Jelly.

Thanks,
Michael


--
This E-mail is confidential.  It may also be legally privileged.  If you are
not the addressee you may not copy, forward, disclose or use any part of it.
If you have received this message in error, please delete it and all copies
from your system and notify the sender immediately by return E-mail.
Internet communications cannot be guaranteed to be timely, secure, error or
virus-free.  The sender does not accept liability for any errors or omissions.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: Using Maven on a very large integration project - how far can Maven go?

Posted by Eric Pugh <ep...@upstate.com>.
Michael,

I think your overall approch is on target.  One of the things I have found
easier when deploying to containers is to have Tomcat as part of CVS..  It
gives you a lot more control over what the Tomcat environment looks like,
isn't too large, and reduces variables.

Also, as far as the merging of jars, anything you can do in Ant, you can do
in Maven, as Maven supports all ant tasks.  Here is an article that gives a
simple example of calling the <echo/> task from Ant in Maven:
http://www.onjava.com/pub/a/onjava/2004/03/17/maven.html.

Eric Pugh

> -----Original Message-----
> From: Michael Mattox [mailto:michael.mattox@verideon.com]
> Sent: Monday, April 05, 2004 1:04 AM
> To: Maven Users List
> Subject: Using Maven on a very large integration project - how far can
> Maven go?
>
>
> 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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org