Gradle plugin to create fat/uber JARs, apply file transforms, and relocate packages for applications and libraries. Gradle version of Maven's Shade plugin.
null+configuration
error (Issue #297)Transformer
interface to accept TransformerContext
object instead of individual valuesRelocator
interface to accept RelocatePathContext
and RelocateClassContext
objectsdistShadowZip
and distShadowTar
have been removed and replaced with the standard shadowDistZip
and shadowDistTar
from the Gradle Distribution plugin.installShadowApp
task has been removed and replaced with the standard installShadowDist
task from the Gradle Distribution plugin.installShadowDist
task outputs to build/install/<project name>-shadow
per the standard (formerly was build/installShadow
)component.shadow
removed in favor of project.shadow.component(publication)
so as to remove dependency on internal Gradle APIs.ConfigureShadowRelocation
task and com.github.johnrengelman.plugin-shadow
plugin to automatically configure package relocation for Gradle plugins.ShadowJar
task with Build Scans, custom values including dependencies merged anc package relocations are published in the scan.startShadowScripts
tasks with Gradle's built-in CreateStartScripts
type.keyTransformer
property to PropertiesFileTransformer
api
, implementation
, runtimeOnly
dependency configurations introdcued in Gradle 3.3org.apache.tools.zip
package.jdom:jdom:1.1
to org.jdom:jdom2:2.0.5
) (Issue #98)5.0.3
to support JDK8 (Issue #97)dependency
string when including/excluding (Issue #83)runShadow
where dependencies from the shadow
configuration are not available (Issue #94)'createStartScripts'
task that was causing it to not execute 'shadowJar'
task (Issue #90)null
in ShadowJar Manifest 'Class-Path'
value when jar
task does not specify a value for it. (Issue #92)'Class-Path'
should reference jars from 'shadow'
config as relative to location of shadowJar
output (Issue #91)shadowJar.manifest
into jar.manifest
. (Issue #82)
To simplify behavior, the shadowJar.appendManifest
method has been removed. Replace uses with shadowJar.manifest
ShadowTask
now has a configurations
property that is resolved to the files in the resolved configuration before
being added to the copy spec. This allows for an easier implementation for filtering. The default 'shadowJar' task
has the convention of adding the 'runtime'
scope to this list. Manually created instances of ShadowTask
have no
configurations added by default and can be configured by setting task.configurations
.'maven'
plugin when added. When adding 'maven'
the 'uploadShadow'
task
will now properly configure the POM dependencies by removing the 'compile'
and 'runtime'
configurations from the
POM and adding the 'shadow'
configuration as a RUNTIME
scope in the POM. This behavior matches the behavior when
using the 'maven-publish'
plugin.ServiceFileTransformer
to specify include/exclude patterns for
files within the configured path to merge.GroovyExtensionModuleTransformer
for merging Groovy Extension module
descriptor files. The existing ServiceFileTransformer
now excludes Groovy Extension Module descriptors by default.distShadowZip
and distShadowZip
now contain the shadow library and run scripts instead of the default from the 'application'
plugin (Issue #89)