maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Scholte" <rfscho...@apache.org>
Subject Re: Extending the shade plugin to support war files
Date Fri, 08 Jun 2018 17:48:08 GMT
The idea is there already for a long time, MSHADE-87 [1]
After some time my conclusion was, that in the end it is easier and more  
reliable to add a shaded jar to the webarchive instead of trying to solve  
this within the war.
This doesn't mean that it could be supported by the maven-shade-plugin,  
but it requires quite some changes to the filters, etc because of the  
change of the output location.

thanks,
Robert

[1] https://issues.apache.org/jira/browse/MSHADE-87

On Fri, 08 Jun 2018 14:39:39 +0200, Matthew Amos <MAmos@scottlogic.com>  
wrote:

> At present the shade plugin doesn't really support war files. The  
> classes that are shaded are written into the root of the output  
> artefact, and the WEB-INF/classes path component is mistakenly taken to  
> be part of the package name.
>
> I have created a fork of the repository and added a new configuration  
> setting:
>
> <rootDirInArchive>WEB-INF/classes</rootDirInArchive>
>
> With this set, the project artefact that is treated specially when  
> compared to its dependencies. The result is that the shaded and  
> potentially relocated classes and resources are added to the  
> WEB-INF/classes folder. The correct behaviour is taken to correctly  
> identify and deal with duplicates using the existing logic i.e. to avoid  
> any exceptions from duplicate entries in the resultant war.
>
> I have a rudimentary test case, and am successfully using this in one of  
> my own projects. Before I complete these tests, open a Jira, and make a  
> pull request, I would like to ensure that the feature would be  
> appreciated.
>
> I am interested to know why this behaviour has never been added  
> previously.
>
> Would the more flexible option of specifying the root directory in the  
> archive be preferred? Or would it be preferable to have either a Boolean  
> <warArtifact>true</warArtifact>, or even to do this automatically based 

> on the file extension of the project artifact?
>
> At present I remove the shaded artefacts in the maven-war-plugin using  
> the packagingExcludes config. I could also extend the shade plugin to do  
> this automatically. Would that feature be required for me to contribute?
>
> I appreciate your input and feedback
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Mime
View raw message