Michal Domagala created MWAR-360:
------------------------------------
Summary: Overlay: ignore WAR which is transitively dependent over
JAR
Key: MWAR-360
URL: https://issues.apache.org/jira/browse/MWAR-360
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 A.
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 Base
Actual: Level1 and Base are overlayed together. That wastes time.
[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]
Reason: Level1 classes JAR has dependency to Base WAR, but that dependency is
"fake"
[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
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
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)