[ https://issues.apache.org/jira/browse/MSHADE-252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Herve Boutemy updated MSHADE-252: --------------------------------- Fix Version/s: 3.3.0 > shadeSourcesContent is broken when combined with partial relocation > ------------------------------------------------------------------- > > Key: MSHADE-252 > URL: https://issues.apache.org/jira/browse/MSHADE-252 > Project: Maven Shade Plugin > Issue Type: Bug > Affects Versions: 2.4.3, 3.0.0 > Reporter: Zhenyu Yang > Priority: Major > Labels: easyfix > Fix For: 3.3.0 > > > per description in > https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#shadeSourcesContent, > when set it to true, > "it will attempt to shade the contents of the java source files when creating > the sources jar." However, it seems will blindly shade all the source files > include those are excluded from relocation rules. > This could be illustrated with a simple example: > Assume there are two classes defined in two packages as below: > {code:title=A.java} > package com.fake.fooA; > import com.fake.fooB; > public Class A {} > {code} > {code:title=B.java} > package com.fake.fooB; > import com.fake.fooA; > public class B {} > {code} > and the maven config looks like: > {code:xml} > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-shade-plugin</artifactId> > <version>2.4.3</version> > <executions> > <!-- Run shade goal on package phase --> > <execution> > <phase>package</phase> > <goals> > <goal>shade</goal> > </goals> > <configuration> > <shadedArtifactAttached>false</shadedArtifactAttached> > <createSourcesJar>true</createSourcesJar> > <shadeSourcesContent>true</shadeSourcesContent> > <relocations> > <relocation> > <pattern>com.fake</pattern> > <shadedPattern>.com.fake.shaded</shadedPattern> > <excludes> > <exclude>com.fake.fooA.*</exclude> > </excludes> > </relocation> > </relocations> > {code} > Then the shade plugin will modify the B's source file to be: > {code} > package com.fake.shaded.fooB; > import com.fake.shaded.fooA; > public class B {} > {code} > Notice that package A's path was also updated, which is wrong as it's not got > relocated. -- This message was sent by Atlassian Jira (v8.3.4#803005)