You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Jan Lukavský <je...@seznam.cz> on 2019/11/28 15:03:04 UTC

Maven shade plugin: Duplicate entry in META-INF/service

Hi Maven :),

I encountered an exception in my build and I'm not sure if there is 
something wrong with how I structure tasks in my pom.xml, or there is a 
room for improvement of the shade plugin.

The symptoms are as follows:

  - mvn install works just fine

  - mvn deploy fails on 'duplicate error: META-INF/service/....' while 
shading test jar

The reason for that seems that it includes the regular (not test-jar), 
and that one already includes the shaded service. When shading with the 
other dependencies, this fails. I managed to fix this locally with [1], 
but I'm not sure if this is a proper fix. I didn't fill any JIRA yet, 
because I wanted to check with you what the best solution should look 
like. I also don't know when or how this broke, but at least somewhat in 
early 2019 this worked. I probably changed the shade plugin to latest 
version later this year.

Thanks for comments and suggestions!

Jan

[1] https://github.com/apache/maven-shade-plugin/pull/32


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


Re: Maven shade plugin: Duplicate entry in META-INF/service

Posted by Jan Lukavský <je...@seznam.cz>.
Hi Chris,

my pom.xml looks like this [1]. The transformer you suggest is in place.

I think that it would help to not shade the test jar, but I'm using 
shaded guava, which is bundled into core dependencies, so that might be 
a little complicated. Possible, though.

This might be (maybe remotely) related to that the test-jar should 
depend on the core jar through dependency-reduced-pom.xml? Might be 
related to [2]?

Jan

[1] 
https://github.com/O2-Czech-Republic/proxima-platform/blob/master/beam/io-pubsub/pom.xml#L41

[2] https://issues.apache.org/jira/browse/MSHADE-206

On 12/3/19 10:56 AM, Christofer Dutz wrote:
> Hi Jan,
>
> are you using any of the shade transformers? We had similar problems in the PLC4X project, but configuring:
>
>              <transformers>
>                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
>              </transformers>
>
> Helped quite a bit.
>
> Have a look here:
> https://github.com/apache/plc4x/blob/develop/pom.xml#L1286
>
> Hope this helps.
>
> Chris
>
> Am 03.12.19, 10:43 schrieb "Jan Lukavský" <je...@seznam.cz>:
>
>      Hi Matt,
>      
>      thanks for reaction. Is there a workaround around this? I think that the
>      PR I propose is "safe" and might be considered as a hotfix before a
>      proper solution is found? I don't know how is the release cycle of maven
>      plugins defined, but if there is an upcoming release soon, this might help?
>      
>      Jan
>      
>      On 12/2/19 8:06 PM, Matt Foley wrote:
>      > Hi Jan,
>      > See also https://github.com/apache/maven-shade-plugin/pull/14 and MSHADE-259
>      >
>      > I stalled on it because it appears to be a lot of work to create unit tests for maven plugins — and there weren’t examples to follow in the shade plugin.
>      > That said, I’m not sure what I did is the right way to fix it.  I’ve seen emails go by that indicate the possibility of duplication in attachment lists affects several plugins, and the best way would be a global change in the underlying methods for “attachArtifact” that checks to see if the requested item is already there and not duplicate it if so (without error).
>      >
>      > Regards,
>      > —Matt
>      >
>      > On Nov 28, 2019, at 7:03 AM, Jan Lukavský <je...@seznam.cz> wrote:
>      >
>      > Hi Maven :),
>      >
>      > I encountered an exception in my build and I'm not sure if there is something wrong with how I structure tasks in my pom.xml, or there is a room for improvement of the shade plugin.
>      >
>      > The symptoms are as follows:
>      >
>      >   - mvn install works just fine
>      >
>      >   - mvn deploy fails on 'duplicate error: META-INF/service/....' while shading test jar
>      >
>      > The reason for that seems that it includes the regular (not test-jar), and that one already includes the shaded service. When shading with the other dependencies, this fails. I managed to fix this locally with [1], but I'm not sure if this is a proper fix. I didn't fill any JIRA yet, because I wanted to check with you what the best solution should look like. I also don't know when or how this broke, but at least somewhat in early 2019 this worked. I probably changed the shade plugin to latest version later this year.
>      >
>      > Thanks for comments and suggestions!
>      >
>      > Jan
>      >
>      > [1] https://github.com/apache/maven-shade-plugin/pull/32
>      >
>      >
>      > ---------------------------------------------------------------------
>      > 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
>      
>      
>
>
> ---------------------------------------------------------------------
> 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


Re: Maven shade plugin: Duplicate entry in META-INF/service

Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Jan,

are you using any of the shade transformers? We had similar problems in the PLC4X project, but configuring:

            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
            </transformers>

Helped quite a bit.

Have a look here:
https://github.com/apache/plc4x/blob/develop/pom.xml#L1286

Hope this helps.

Chris

Am 03.12.19, 10:43 schrieb "Jan Lukavský" <je...@seznam.cz>:

    Hi Matt,
    
    thanks for reaction. Is there a workaround around this? I think that the 
    PR I propose is "safe" and might be considered as a hotfix before a 
    proper solution is found? I don't know how is the release cycle of maven 
    plugins defined, but if there is an upcoming release soon, this might help?
    
    Jan
    
    On 12/2/19 8:06 PM, Matt Foley wrote:
    > Hi Jan,
    > See also https://github.com/apache/maven-shade-plugin/pull/14 and MSHADE-259
    >
    > I stalled on it because it appears to be a lot of work to create unit tests for maven plugins — and there weren’t examples to follow in the shade plugin.
    > That said, I’m not sure what I did is the right way to fix it.  I’ve seen emails go by that indicate the possibility of duplication in attachment lists affects several plugins, and the best way would be a global change in the underlying methods for “attachArtifact” that checks to see if the requested item is already there and not duplicate it if so (without error).
    >
    > Regards,
    > —Matt
    >
    > On Nov 28, 2019, at 7:03 AM, Jan Lukavský <je...@seznam.cz> wrote:
    >
    > Hi Maven :),
    >
    > I encountered an exception in my build and I'm not sure if there is something wrong with how I structure tasks in my pom.xml, or there is a room for improvement of the shade plugin.
    >
    > The symptoms are as follows:
    >
    >   - mvn install works just fine
    >
    >   - mvn deploy fails on 'duplicate error: META-INF/service/....' while shading test jar
    >
    > The reason for that seems that it includes the regular (not test-jar), and that one already includes the shaded service. When shading with the other dependencies, this fails. I managed to fix this locally with [1], but I'm not sure if this is a proper fix. I didn't fill any JIRA yet, because I wanted to check with you what the best solution should look like. I also don't know when or how this broke, but at least somewhat in early 2019 this worked. I probably changed the shade plugin to latest version later this year.
    >
    > Thanks for comments and suggestions!
    >
    > Jan
    >
    > [1] https://github.com/apache/maven-shade-plugin/pull/32
    >
    >
    > ---------------------------------------------------------------------
    > 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
    
    


Re: Maven shade plugin: Duplicate entry in META-INF/service

Posted by Jan Lukavský <je...@seznam.cz>.
Hi Matt,

thanks for reaction. Is there a workaround around this? I think that the 
PR I propose is "safe" and might be considered as a hotfix before a 
proper solution is found? I don't know how is the release cycle of maven 
plugins defined, but if there is an upcoming release soon, this might help?

Jan

On 12/2/19 8:06 PM, Matt Foley wrote:
> Hi Jan,
> See also https://github.com/apache/maven-shade-plugin/pull/14 and MSHADE-259
>
> I stalled on it because it appears to be a lot of work to create unit tests for maven plugins — and there weren’t examples to follow in the shade plugin.
> That said, I’m not sure what I did is the right way to fix it.  I’ve seen emails go by that indicate the possibility of duplication in attachment lists affects several plugins, and the best way would be a global change in the underlying methods for “attachArtifact” that checks to see if the requested item is already there and not duplicate it if so (without error).
>
> Regards,
> —Matt
>
> On Nov 28, 2019, at 7:03 AM, Jan Lukavský <je...@seznam.cz> wrote:
>
> Hi Maven :),
>
> I encountered an exception in my build and I'm not sure if there is something wrong with how I structure tasks in my pom.xml, or there is a room for improvement of the shade plugin.
>
> The symptoms are as follows:
>
>   - mvn install works just fine
>
>   - mvn deploy fails on 'duplicate error: META-INF/service/....' while shading test jar
>
> The reason for that seems that it includes the regular (not test-jar), and that one already includes the shaded service. When shading with the other dependencies, this fails. I managed to fix this locally with [1], but I'm not sure if this is a proper fix. I didn't fill any JIRA yet, because I wanted to check with you what the best solution should look like. I also don't know when or how this broke, but at least somewhat in early 2019 this worked. I probably changed the shade plugin to latest version later this year.
>
> Thanks for comments and suggestions!
>
> Jan
>
> [1] https://github.com/apache/maven-shade-plugin/pull/32
>
>
> ---------------------------------------------------------------------
> 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


Re: Maven shade plugin: Duplicate entry in META-INF/service

Posted by Matt Foley <ma...@apache.org>.
Hi Jan,
See also https://github.com/apache/maven-shade-plugin/pull/14 and MSHADE-259

I stalled on it because it appears to be a lot of work to create unit tests for maven plugins — and there weren’t examples to follow in the shade plugin.
That said, I’m not sure what I did is the right way to fix it.  I’ve seen emails go by that indicate the possibility of duplication in attachment lists affects several plugins, and the best way would be a global change in the underlying methods for “attachArtifact” that checks to see if the requested item is already there and not duplicate it if so (without error).

Regards,
—Matt

On Nov 28, 2019, at 7:03 AM, Jan Lukavský <je...@seznam.cz> wrote:

Hi Maven :),

I encountered an exception in my build and I'm not sure if there is something wrong with how I structure tasks in my pom.xml, or there is a room for improvement of the shade plugin.

The symptoms are as follows:

 - mvn install works just fine

 - mvn deploy fails on 'duplicate error: META-INF/service/....' while shading test jar

The reason for that seems that it includes the regular (not test-jar), and that one already includes the shaded service. When shading with the other dependencies, this fails. I managed to fix this locally with [1], but I'm not sure if this is a proper fix. I didn't fill any JIRA yet, because I wanted to check with you what the best solution should look like. I also don't know when or how this broke, but at least somewhat in early 2019 this worked. I probably changed the shade plugin to latest version later this year.

Thanks for comments and suggestions!

Jan

[1] https://github.com/apache/maven-shade-plugin/pull/32


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