Skip to content

Combining Annotations with Maven-Shade AppendingTransformer in uberjar #128

@kmader

Description

@kmader

Basically I am trying to make an uberjar for my project which consists of many maven modules (subprojects) that each have their own annotations. This is particularly useful when using Hadoop or Spark since uberjars are much easier to manage and need only be sent once for an entire project.
As a continuation of jglick/sezpoz#6, I still have the issue that combining the annotations from seperate jars does not work correctly using the standard AppendingTransformer in Maven Shade.
The problem appears to be that the resulting json file is formatted as such with line ends

{"class":"tipl.tools.VFilterScale$vfsFactory",...
{"class":"tipl.util.TIPLPluginAnnotation$gaSparkFactory",...

The indexer then org.scijava.annotations.Index.load function then throws an error:

java.io.IOException: Unexpected char: '
'

The two solutions would be to modify scijava or the appendingtransformer, but it seems easier to recompile scijava.

I am using

        <dependency> <!-- initially just for the annotations -->
            <groupId>org.scijava</groupId>
            <artifactId>scijava-common</artifactId>
            <version>2.22.0</version>
        </dependency>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions