Hello

How did you build your Maven project for it? Do you have 5 projects (one per component) or 1 project that does it all?

There is no universal way of deploying a multi-component system. It all depends first if these components can be deployed stand-alone or not. If not, I fail to see why they should be packaged seperately.

I play with a pretty large project at work, based on a commercial framework over which we add new services. The services, even if they can be seen as "components" since we can add or remove them even without restarting the system, are all part of THE big project, no sub-projects for them and not deployed packages. Its been in production for nearly 2 years now and never did we upgraded only a single service as a "component upgrade" Each time, marketing and product management and ISO isssues lead us to issue either minor upgrades (when we add new functionalities) or patches if we correct major bugs.

In another project, we patch some of the framework jars with some internal fixes. These are built and published with a different maven project and part of our internal library repository.

Along with this, we also have some minor utilities to perform specific jobs. For that kind of project, I use 1 maven project per "component". These projects do depends on some jars of the big one and since we didn't feel it was necessary to publish all the system's jars (over 100!) as libraries, I've build the maven projects for those as sub-projects of the master maven project. Doing this allowed me that have access to the master project's sources and share the target directory so that when we compile the big one, the small ones could use the same class files thus speeding up the build. The packaging and deployement is seperate for all projects though.

If you have a distribution that goes beyond what the dist plugin offers, I suggest you take a look at the distribution plugin I wrote. You can find it on Source Forge, its called uber dist : http://sourceforge.net/projects/uber-dist
Just updated the plugin today :).


Hope it helps
Eric.



Helck, Christopher wrote:

I know this could be a huge topic, but I have to start somewhere and I
suspect that this issue is common for maven users.

We've successfully migrated a project from Ant to Maven. In the process
we've broken a large application into 5 components. Currently we deploy
and install the entire thing as one entity using InstallShield. All the
jar files go under one application directory. Upgrading to the next
release means creating another application directory and adjusting a
symbolic link to point to it.

In the past if we needed to make a patch we'd create (by hand) a
patch.jar that had the changes and placed it at the front of the
classpath. I'd like to get away from this. Instead I'd like to just
release a new version of the changed component. The question is how
should my production environment be setup to make this easy/possible?

Thanks,
Christopher




The information contained in this e-mail is confidential. This e-mail is intended only for the stated addressee. If you are not an addressee, you must not disclose, copy, circulate or in any other way use or rely on the information contained in this e-mail. if you have received this e-mail in error, please inform us immediately and delete it and all copies from your system.

EBS Dealing Resources International Limited. Registered address: 10 Paternoster 
Square, London EC4M 7DY, United Kingdom. Registered number 2669861.

EBS Dealing Resources, Inc, registered in Delaware. Address: 535 Madison 
Avenue, 24th Floor, New York, NY 10022, USA, and One upper Pond road, Building 
F - Floor 3, Parsippany, NJ 07054, USA.

EBS Dealing Resources Japan Limited, a Japanese Corporation. Address: Asteer 
Kayabacho Bldg, 6th Floor, 1-6-1, Shinkawa, Chuo-Ku,  Tokyo 104-0033, Japan.






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



Reply via email to