Hi, On 3/21/07, Brian E. Fox <[EMAIL PROTECTED]> wrote:
Stephane, Piotr, Thanks for taking this on and putting together this proposal. As we discussed previously, I have significant issues with the current war plugin, so much that we have been stuck using a patched version of 2.0-beta-2 because anything newer breaks my build. I believe that your proposal solves nearly all my issues.
Yeah that's the purpose.
Will the use of this new overlay cause the transitive dependencies of the overlayed wars to be resolved and included? I currently construct wars that I intend to be used as overlays by excluding all the jars. I do this to avoid conflicts but also to reduce the size in the repository. Unfortunately because I'm using a very old version of mwar, I have to manually keep my war project dependencies synchronized. If these transitive dependencies from the wars are automatically pulled in, then I think it's safe to also exclude WEB-INF/lib by default from the overlays. I think we'll have an excellent solution at that point.
The proposition sticks to a simple overlay which does not resolve the transitive dependencies, that's a very good point. We could even put a default exclude on WEB-INF/* for overlays that are not the current build (?). This will also solves the issues of people having multiple time the same dep with a different minor versions in the resulting war. Oh by the way, I forgot to tell that we could include multiple times the same overlays if we want to control the overriding policy of a particular piece of an overlay. The only thing I am afraid of right now is performance. Not sure we will be able to implement this without copying stuff more than one time to the target directory.
Thanks,
Thanks for taking the time to respond. We will start the implementation, probably targetting 2.1 instead of 2.0.3 since it's quite a major new functionality. Any other comment is more than welcome (such as sample projects that reproduces complex scenario that we could include in ITs). Thanks, Stéphane
-----Original Message----- From: Stephane Nicoll [mailto:[EMAIL PROTECTED] Sent: Monday, March 19, 2007 5:17 PM To: Maven Developers List Cc: Piotr Tabor Subject: War plugin and Overlays handling Hi, Piotr and I are currently working on the war plugin and especially this overlay mechanism that needs to be upgraded. Currently a couple of issues [1] in the war plugin are linked to this functionality and we should really address them. The idea here is to provide a better way to handle overlays through an explicit configuration. An overlay has the following parameters: * groupId * artifactId * classifier (optionnal) * includes (default includes everything) * excludes (default META-INF) The order in which overlays are specified defined the order in which they are applied. An overlay without a groupId/artifactId is considered as the current build. If no such overlay is defined, it is applied *last*. The behavior should be deterministic so the copy will happen not matter how if a file is newer than the one being applied. Overlays order always wins. If no overlays section is defined, the wars are processed as before; dependentWarIncludes and dependentWarExcludes are honored. If an overlays section is defined and those configuration items are defined, they are ignored and a warning is logged. If a dependent war is missing in the overlays section, it's applied after custom overlays *and* before the current build (if the current build is not specified of course) with the default includes/excludes. Does that sounds ok to you? If so I'll add the proposition to the war site and start the implementation with Piotr. We're also thinking about integrating the merge functionality of the cargo plugin but we still need to discuss with the cargo guys if it will be feasible. Please comment. Stéphane [1] MWAR-72, MWAR-66, MWAR-78 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
