- Break plugin into multiple sub-plugins.
ShadowBasePlugin
is always applied.
ShadowJavaPlugin
andShadowApplicationPlugin
are applied in reaction to applying thejava
andapplication
plugins respectively. - Shadow does not applied
java
plugin automatically.java
orgroovy
must be applied in conjunction withshadow
. - Moved artifact filtering to
dependencies {}
block underneathshadowJar
. This allows better include/exclude control
for dependencies. - Dependencies added to the
shadow
configuration are automatically added to theClass-Path
attribute in the manifest
forshadowJar
- Applying
application
plugin and settingsmainClassName
automatically configures theMain-Class
attribute in
the manifest forshadowJar
runShadow
now utilizes the output of theshadowJar
and executes usingjava -jar <shadow jar file>
- Start Scripts for shadow distribution now utilize
java -jar
to 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.