I was just looking through the README of this, and noticed that it suggests that compileOnly be used for depending on this project, however this is the Gradle equivalent of setting the dependency scope to provided rather than compile. The Gradle equivalent of the compile scope would be implementation (was just compile on older versions before that was split to allow optionally exposing transitive dependencies)
Using compileOnly obviously tells shadow that this dependency does not need to be shaded in to the final JAR, so not only is relocation entirely redundant, plugins that use this will also be blindly assuming that the software they run contains this dependency in it, which I do not believe is what we want here.
tl;dr replace compileOnly with implementation for the Gradle dependency in the README.
I was just looking through the README of this, and noticed that it suggests that
compileOnly
be used for depending on this project, however this is the Gradle equivalent of setting the dependency scope toprovided
rather thancompile
. The Gradle equivalent of thecompile
scope would beimplementation
(was justcompile
on older versions before that was split to allow optionally exposing transitive dependencies)Using
compileOnly
obviously tells shadow that this dependency does not need to be shaded in to the final JAR, so not only is relocation entirely redundant, plugins that use this will also be blindly assuming that the software they run contains this dependency in it, which I do not believe is what we want here.tl;dr replace
compileOnly
withimplementation
for the Gradle dependency in the README.