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]