maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michal Domagala (JIRA)" <>
Subject [jira] [Commented] (MWAR-360) Overlay: ignore WAR which is transitively dependent over JAR
Date Sat, 17 Dec 2016 23:49:58 GMT


Michal Domagala commented on MWAR-360:

The current issue has not only performance impact, but it is also logical defect

Assume I have 3 WARs, war1, war2, war3. Each WAR applies {{<attachClasses>true</attachClasses>}}.

war1 has a file {{x.html}}.
war2 depends on war1 and excludes file {{x.html}}
war3 depends on war2 and war2-classes

Expected: war3 does not contain {{x.html}}, actual: war3 contains {{x.html}}

> Overlay: ignore WAR which is transitively dependent over JAR
> ------------------------------------------------------------
>                 Key: MWAR-360
>                 URL:
>             Project: Maven WAR Plugin
>          Issue Type: Improvement
>            Reporter: Michal Domagala
>            Priority: Minor
> Example:
> I have WAR project 'Base' with class A. 
> I have WAR project 'Level1' which is depends on 'Base'. 'Level1' has class B extends
> Then 'Base' must have <attachClasses>true</attachClasses>
> Finally, I have WAR project 'Level2' with class C extends B. For the same reason 'Level1'
must have  <attachClasses>true</attachClasses>
> Expected: when Level2 WAR is build, only Level1 WAR is overlayed, because Level1 contains
> Actual: Level1 and Base are overlayed together. That wastes time.
> {noformat}
> [INFO] Copying webapp resources [mwar/Level2/src/main/webapp]
> [INFO] Processing overlay [ id mwar:Level1]
> [INFO] Processing overlay [ id Base:Base]
> [INFO] Webapp assembled in [26 msecs]
> {noformat}
> Reason: Level1 classes JAR has dependency to Base WAR, but that dependency is "fake"
> {noformat}
> [INFO] mwar:Level2:war:0.0.1-SNAPSHOT
> [INFO] +- mwar:Level1:war:0.0.1-SNAPSHOT:compile
> [INFO] \- mwar:Level1:jar:classes:0.0.1-SNAPSHOT:compile
> [INFO]    +- Base:Base:war:0.0.1-SNAPSHOT:compile
> [INFO]    \- Base:Base:jar:classes:0.0.1-SNAPSHOT:compile
> {noformat}
> Proposed solution: There should be option 'notOverlayTransitiveWar' which allow exclude
WARs like 'Base' from overlaying, because the transitive WAR may be reached only over JAR
and I think there is no reason any JAR really depends on WAR.
> Workaround is manually define ovelays in plugin configuration, but Maven spirit is Convention
over Configuration
> h2. example
> # git clone
> # cd mwar360
> # mvn package

This message was sent by Atlassian JIRA

View raw message