Package reloaction
To avoid classpath conflicts with other plugins using the same dependencies, dependencies should be relocated to a unique package. More information can be found here.
The following Gradle configuration relocates all dependencies using the shadow
plugin, that will be included in the jar file, to a new location:
plugins {
id 'com.github.johnrengelman.shadow' version '6.1.0'
}
shadowJar {
archiveClassifier.set('') // remove the 'all' suffix
}
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
task relocateShadowJar(type: ConfigureShadowRelocation) {
target = tasks.shadowJar
prefix = "mypluginshadow" // Default value is "shadow"
}
tasks.shadowJar.dependsOn tasks.relocateShadowJar
Afterwards a jar file can be built by running the Gradle task shadowJar
.
Last updated