maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Otavio Biasutti (JIRA)" <>
Subject [jira] [Created] (MASSEMBLY-920) ContainerDescriptorHandler for MetaInf-Services breaks folder structure
Date Tue, 30 Jul 2019 13:27:00 GMT
Otavio Biasutti created MASSEMBLY-920:

             Summary: ContainerDescriptorHandler for MetaInf-Services breaks folder structure
                 Key: MASSEMBLY-920
             Project: Maven Assembly Plugin
          Issue Type: Bug
          Components: component descriptor
    Affects Versions: 3.1.1
            Reporter: Otavio Biasutti

I have my own jar-with-dependecies assembly and I need to use the MetaInf-Services ContainerDescriptorHandler
to aggregate all services and avoid overriding.

The plugin does not respect the folder structure inside META-INF/services.

Camel is a good example of dependecy that can be used to reproduce the problem. It defines
its services in a nested folder structure, as in:


What really happens is that the folder structure is indeed created but the TypeConverter file
is moved to the root of the services, i.e. *META-INF/services*

I had to patch the code and define a custom ContainerDescriptorHandler to fix the problem.

The fix is straightforward. I simply inherited the provided implementation of MetaInfServiceHandler
and coded an overriden version of the following method like this:

    protected String getOutputPathPrefix(final FileInfo fileInfo) {

        return Paths.get(fileInfo.getName()).getParent().toString() + "/";

All services were properly aggreggated after that.

This may be the best fix for several related bugs I found online, like this one here:


This message was sent by Atlassian JIRA

View raw message