After a very frustrating couple of days trying to understand the new features of the assembly plugin, let me try to specify what I am TRYING to do and see if there isn't a better (i.e. more mavenish) way of doing it. Maven is flexible as long as you don't stray too far out of the beaten path.

I am supporting two main applications in this system.

One is a fairly standard war file that runs under Tomcat. It isn't really a web application, but from this perspective, one might as well assume that it is.

The other is a not really standard zip file that contains a standalone java application. The standalone application deals with batch processes pertaining to the backend database that is used by the "web application". While there may be other ways to organize this code, let's say that this mode of organization is an unalterable requirement.

The two applications share some modules - for database access, and for contacting some external web services of which both applications are clients at various points.

The structure I use is that each module is a separate Eclipse project and a separate SVN project. Each project is ultimately descended from a parent POM that governs which dependency version to use for each dependency and which plugin version to use.

Since some of the modules need to be "owned" by both of the applications, they aren't actually owned by either. Instead, I try to treat them as much like third-party jars as possible. They are installed into the local repository and then used as appropriate. They aren't quite as stable as most third-party jars, they are evolving to different degrees, along with the main applications.

This applications of this system can be built both in m2eclipse and by a server process that builds automatically after getting pristine source from svn.

As far as building the "webapp", that presents no problems. But the standalone batch process application presents many problems. Besides the module jars and third party jars that it needs to package into the zip file, it also needs to package in some configuration files that will ultimately live on the server file system.

For this purpose, I have been using the assembly plugin. I have a configuration that works, for the most part, using the assembly:assembly goal, which is now deprecated. I have tried to build using the recommended way (using the single goal and the <useAllReactorProjects> tag) and I ran up against mind-boggling difficulties which I wasn't able to resolve. (See http://www.mail-archive.com/[email protected]/msg115460.html) Evidently my system is enough out of the norm that this won't work for me.

So, to make a long story short, I'm looking for a better way to organize this system that would fit more with Maven. I find it aggravating that what would be a simple thing to lay out with make or ant is seemingly almost impossible to achieve in Maven - especially since I am trying to convert my organization into using Maven. I don't know if I'm dealing with bugs, or with things that Maven was never designed to be able to do in the first place.









---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to