shade:shade

Full name:

org.apache.maven.plugins:maven-shade-plugin:1.2.2:shade

Description:

Mojo that performs shading delegating to the Shader component.

Attributes:

  • Requires a Maven 2.0 project to be executed.
  • Requires dependency resolution of artifacts in scope: runtime.
  • Binds by default to the lifecycle phase: package.

Optional Parameters

Name Type Since Description
artifactSet ArtifactSet - Artifacts to include/exclude from the final artifact.
createDependencyReducedPom boolean - Flag whether to generate a simplified POM for the shaded artifact. If set to true, dependencies that have been included into the uber JAR will be removed from the <dependencies> section of the generated POM. The reduced POM will be named dependency-reduced-pom.xml and is stored into the same directory as the shaded artifact.
Default value is: true.
createSourcesJar boolean - When true, it will attempt to create a sources jar as well
Default value is: false.
filters ArchiveFilter[] - Archive Filters to be used. Allows you to specify an artifact in the form of groupId:artifactId and a set of include/exclude file patterns for filtering which contents of the archive are added to the shaded jar. From a logical perspective, includes are processed before excludes, thus it's possible to use an include to collect a set of files from the archive then use excludes to further reduce the set. By default, all files are included and no files are excluded.
finalName String - The name of the shaded artifactId. If you like to change the name of the native artifact, you may use the <build><finalName> setting. If this is set to something different than <build><finalName>, no file replacement will be performed, even if shadedArtifactAttached is being used.
keepDependenciesWithProvidedScope boolean - When true, dependencies are kept in the pom but with scope 'provided'; when false, the dependency is removed.
Default value is: false.
outputDirectory File - The destination directory for the shaded artifact.
Default value is: ${project.build.directory}.
promoteTransitiveDependencies boolean - When true, transitive deps of removed dependencies are promoted to direct dependencies. This should allow the drop in replacement of the removed deps with the new shaded jar and everything should still work.
Default value is: false.
relocations PackageRelocation[] - Packages to be relocated.
shadedArtifactAttached boolean - Defines whether the shaded artifact should be attached as classifier to the original artifact. If false, the shaded jar will be the main artifact of the project
Default value is: false.
shadedArtifactId String - The name of the shaded artifactId. So you may want to use a different artifactId and keep the standard version. If the original artifactId was "foo" then the final artifact would be something like foo-1.0.jar. So if you change the artifactId you might have something like foo-special-1.0.jar.
Default value is: ${project.artifactId}.
shadedClassifierName String - The name of the classifier used in case the shaded artifact is attached.
Default value is: shaded.
shadedGroupFilter String - If specified, this will include only artifacts which have groupIds which start with this.
transformers ResourceTransformer[] - Resource transformers to be used.

Parameter Details

artifactSet:

Artifacts to include/exclude from the final artifact.
  • Type: org.apache.maven.plugins.shade.mojo.ArtifactSet
  • Required: No

createDependencyReducedPom:

Flag whether to generate a simplified POM for the shaded artifact. If set to true, dependencies that have been included into the uber JAR will be removed from the <dependencies> section of the generated POM. The reduced POM will be named dependency-reduced-pom.xml and is stored into the same directory as the shaded artifact.
  • Type: boolean
  • Required: No
  • Expression: ${createDependencyReducedPom}
  • Default: true

createSourcesJar:

When true, it will attempt to create a sources jar as well
  • Type: boolean
  • Required: No
  • Expression: ${createSourcesJar}
  • Default: false

filters:

Archive Filters to be used. Allows you to specify an artifact in the form of groupId:artifactId and a set of include/exclude file patterns for filtering which contents of the archive are added to the shaded jar. From a logical perspective, includes are processed before excludes, thus it's possible to use an include to collect a set of files from the archive then use excludes to further reduce the set. By default, all files are included and no files are excluded.
  • Type: org.apache.maven.plugins.shade.mojo.ArchiveFilter[]
  • Required: No

finalName:

The name of the shaded artifactId. If you like to change the name of the native artifact, you may use the <build><finalName> setting. If this is set to something different than <build><finalName>, no file replacement will be performed, even if shadedArtifactAttached is being used.
  • Type: java.lang.String
  • Required: No
  • Expression: ${finalName}

keepDependenciesWithProvidedScope:

When true, dependencies are kept in the pom but with scope 'provided'; when false, the dependency is removed.
  • Type: boolean
  • Required: No
  • Expression: ${keepDependenciesWithProvidedScope}
  • Default: false

outputDirectory:

The destination directory for the shaded artifact.
  • Type: java.io.File
  • Required: No
  • Default: ${project.build.directory}

promoteTransitiveDependencies:

When true, transitive deps of removed dependencies are promoted to direct dependencies. This should allow the drop in replacement of the removed deps with the new shaded jar and everything should still work.
  • Type: boolean
  • Required: No
  • Expression: ${promoteTransitiveDependencies}
  • Default: false

relocations:

Packages to be relocated.
  • Type: org.apache.maven.plugins.shade.mojo.PackageRelocation[]
  • Required: No

shadedArtifactAttached:

Defines whether the shaded artifact should be attached as classifier to the original artifact. If false, the shaded jar will be the main artifact of the project
  • Type: boolean
  • Required: No
  • Expression: ${shadedArtifactAttached}
  • Default: false

shadedArtifactId:

The name of the shaded artifactId. So you may want to use a different artifactId and keep the standard version. If the original artifactId was "foo" then the final artifact would be something like foo-1.0.jar. So if you change the artifactId you might have something like foo-special-1.0.jar.
  • Type: java.lang.String
  • Required: No
  • Expression: ${shadedArtifactId}
  • Default: ${project.artifactId}

shadedClassifierName:

The name of the classifier used in case the shaded artifact is attached.
  • Type: java.lang.String
  • Required: No
  • Expression: ${shadedClassifierName}
  • Default: shaded

shadedGroupFilter:

If specified, this will include only artifacts which have groupIds which start with this.
  • Type: java.lang.String
  • Required: No
  • Expression: ${shadedGroupFilter}

transformers:

Resource transformers to be used.
  • Type: org.apache.maven.plugins.shade.resource.ResourceTransformer[]
  • Required: No