Marcono1234 created MSHADE-435: ---------------------------------- Summary: Add parameter to ignore project artifact for excludes filtering Key: MSHADE-435 URL: https://issues.apache.org/jira/browse/MSHADE-435 Project: Maven Shade Plugin Issue Type: New Feature Affects Versions: 3.4.1 Reporter: Marcono1234
h3. The problem When specifying wildcard {{exclude}} filters with {{<artifact>*:*</artifact>}} it is often desired to only remove the classes and resources from dependencies, but not from the artifact of the project which is currently built. Examples for this are {{module-info.class}} files (see MSHADE-300), and more recently due to MSHADE-306 all kind of common resource files, e.g. {{META-INF/MANIFEST.MF}} (for non OSGi projects), {{META-INF/NOTICE}}, ... See also [this recent Stack Overflow question|https://stackoverflow.com/q/64110058]. Unfortunately it is not easily possible at the moment to remove the files from dependencies only, but to keep the project resources (without a warning from the shade plugin) because filters always apply to the project artifact too, so you would end up excluding for example your own {{MANIFEST.MF}} file as well. According to the [documentation|https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#filters] it is also not possible to specify some kind of "keep" filter which counteracts the wildcard exclude filter because inclusions are always evaluated before exclusions. h3. Possible solution One possible solution would be to add a new {{considerProjectArtifact}} parameter or similar with default value {{true}} for {{filter}} elements. When set to {{false}} the files from the project artifact are not considered. This is mainly from the perspective of exclusions, not sure how {{considerProjectArtifact}} should behave for inclusions. -- This message was sent by Atlassian Jira (v8.20.10#820010)