Re: Help - client extensions in WAR file

2011-07-17 Thread hariharansrc
I'm not understanding what you are telling actually but i will give you an
suggestion  you can use Enterprise Archive(EAR) to deploy many modules as a
single module.

--
View this message in context: 
http://maven.40175.n5.nabble.com/Help-client-extensions-in-WAR-file-tp4587253p4596202.html
Sent from the Maven - Users mailing list archive at Nabble.com.

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



Help - client extensions in WAR file

2011-07-14 Thread Colin Yates
Hi all,

I have a WAR which exposes an extension point: MyStrategyInterface.  I then
have a number of clients who all provide their own implementation of said
extension.  The code is structured so there is a web-project and then
multiple client-projects which only contain the extension point.  The build
(using gradle) in each client project builds the WAR, unpacks it, inserts
the client JAR into WEB-INF/lib and then repacks the WAR.  Yes, I know.
 Really :)

Logically at runtime, there is a circular dependency - the WAR *requires* a
client and the client has a static dependency on the strategy in the WAR,
but we can get away with it because one direction is at compile time and the
other is at run-time.

How would I do this with maven?

My thoughts:

 - include the clients in separate source trees in the web project and use
profiles or an environment variable to select which one to include (i.e. mvn
-Dclient=clientX would include the source code for clientX).  The client's
have their own tests as well, so I would need to do this for the testing
lifecycle as well.
 - use the existing structure and do some custom magic at certain points in
the assembly lifecycle in the client - building the client war is done by
the client project
 - separate out the strategy into its own project and then do some magic to
change the dependency in the WAR to one of the client projects - build the
client war is done by the web project

This cannot be a unique requirement - and I have read the manual, but it
just isn't clicking...  I am not sure what terminology to search for in
google either  I understand (and am using elsewhere) pom hierarchies,
but this needs more than that I think.

Help please :)

(I am using maven3)

Col