[
https://issues.apache.org/jira/browse/MSHADE-252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Osipov reassigned MSHADE-252:
-------------------------------------
Assignee: Herve Boutemy
> 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
> Assignee: Herve Boutemy
> 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)