- Minecrell Gradle 2.5 compatibility (Issue #147)
- Apply package relocations to dependency resources (Issue #114)
- Re-organize some code to remove need for forcing the Gradle API ClassLoader to allow the
org.apache.tools.zippackage. - Upgrade JDOM library from 1.1 to 2.0.5 (change dependency from
jdom:jdom:1.1toorg.jdom:jdom2:2.0.5) (Issue #98) - Convert ShadowJar.groovy to ShadowJar.java to workaround binary incompatibility introduced by Gradle 2.2 (Issue #106)
- Updated ASM library to
5.0.3to support JDK8 (Issue #97) - Allows for regex pattern matching in the
dependencystring when including/excluding (Issue #83) - Apply package relocations to resource files (Issue #93)
- fix bug in
runShadowwhere dependencies from theshadowconfiguration are not available (Issue #94)
- Fix bug in
'createStartScripts'task that was causing it to not execute'shadowJar'task (Issue #90) - Do not include
nullin ShadowJar Manifest'Class-Path'value whenjartask does not specify a value for it. (Issue #92) - ShadowJar Manifest
'Class-Path'should reference jars from'shadow'config as relative to location ofshadowJaroutput (Issue #91)
- (Breaking Change!) Fix leaking of
shadowJar.manifestintojar.manifest. (Issue #82) To simplify behavior, theshadowJar.appendManifestmethod has been removed. Replace uses withshadowJar.manifest ShadowTasknow has aconfigurationsproperty 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 ofShadowTaskhave no configurations added by default and can be configured by settingtask.configurations.- Properly configure integration with the
'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 aRUNTIMEscope in the POM. This behavior matches the behavior when using the'maven-publish'plugin. - Matt Hurne - Allow
ServiceFileTransformerto specify include/exclude patterns for files within the configured path to merge. - Matt Hurne - Added
GroovyExtensionModuleTransformerfor merging Groovy Extension module descriptor files. The existingServiceFileTransformernow excludes Groovy Extension Module descriptors by default. distShadowZipanddistShadowZipnow contain the shadow library and run scripts instead of the default from the'application'plugin (Issue #89)
- Make service files root path configurable for
ServiceFileTransformer(Issue #72) - Andres Almiray - Added PropertiesFileTransformer (Issue #73)
- Brandon Kearby - Fixed StackOverflow when a cycle occurs in the resolved dependency graph (Issue #69)
- Apply Transformers to project resources (Issue #70, Issue #71)
- Do not drop non-class files from dependencies when relocation is enabled. Thanks to Minecrell for digging into this. (Issue #61)
- Remove support for applying individual sub-plugins by Id (easier maintenance and cleaner presentation in Gradle Portal)
- Do not add an empty Class-Path attribute to the manifest when the
shadowconfiguration contains no dependencies. runShadownow registersshadowJaras an input. Previously,runShadowdid not executeshadowJarand an error occurred.- Support Gradle 2.0 (Issue #66)
- Do not override existing 'Class-Path' Manifest attribute settings from Jar configuration. Instead combine. (Issue #65)
- Fix issue where non-class files are dropped when using relocation (Issue #58)
- Do not create a / directory inside the output jar.
- Fix
runShadowtask to evaluate theshadowJar.archiveFileproperty at execution time. (Issue #60)
- Previously known as v0.9.0
- All changes from 0.9.0-M1 to 0.9.0-M5
- Properly configure the ShadowJar task inputs to observe the include/excludes from the
dependenciesblock. This allows UP-TO-DATE checking to work properly when changing thedependenciesrules (Issue #54) - Apply relocation remappings to classes and imports in source project (Issue #55)
- Do not create directories in jar for source of remapped class, created directories in jar for destination of remapped classes (Issue #53)
- Add commons-io to compile classpath
- Update asm library to 4.1
- Break plugin into multiple sub-plugins.
ShadowBasePluginis always applied.ShadowJavaPluginandShadowApplicationPluginare applied in reaction to applying thejavaandapplicationplugins respectively. - Shadow does not applied
javaplugin automatically.javaorgroovymust be applied in conjunction withshadow. - Moved artifact filtering to
dependencies {}block underneathshadowJar. This allows better include/exclude control for dependencies. - Dependencies added to the
shadowconfiguration are automatically added to theClass-Pathattribute in the manifest forshadowJar - Applying
applicationplugin and settingsmainClassNameautomatically configures theMain-Classattribute in the manifest forshadowJar runShadownow utilizes the output of theshadowJarand executes usingjava -jar <shadow jar file>- Start Scripts for shadow distribution now utilize
java -jarto execute instead of placing all files on classpath and executing main class. - Excluding/Including dependencies no longer includes transitive dependencies. All dependencies for inclusion/exclusion must be explicitly configured via a spec.
- Use commons.io FilenameUtils to determine name of resolved jars for including/excluding
- Added integration with
applicationplugin to replace oldOutputSignedJarstask - Fixed bug that resulted in duplicate file entries in the resulting Jar
- Changed plugin id to 'com.github.johnrengelman.shadow' to support Gradle 2.x plugin infrastructure.
- Rewrite based on Gradle Jar Task
ShadowJarnow extendsJar- Removed
signedCompileandsignedRuntimeconfigurations in favor ofshadowconfiguration - Removed
OutputSignedJarstask
See here