This test project demonstrates the issue of the netty-all
package not forcing the version of other netty packages to
get updated. See #1657.
This app does not crash do to the multiple netty versions on the classpath, but there are cases where having multiple netty.io jars of different versions on the classpath will cause a crash.
Run ./gradlew dist
Built jar and libs will be in ./app/build/dist
.
Take note in the libs/
folder, the multiple versions of netty.io jars. There will be a 4.1.67 netty-all
jar, and the
others are version 4.1.63.
To print the dependency graph, run ./gradlew app:dependencies
.
It will print the following for the runtime classpath.
runtimeClasspath - Runtime classpath of source set 'main'.
+--- project :lib
| \--- io.netty:netty-codec-http:4.1.63.Final
| +--- io.netty:netty-common:4.1.63.Final
| +--- io.netty:netty-buffer:4.1.63.Final
| | \--- io.netty:netty-common:4.1.63.Final
| +--- io.netty:netty-transport:4.1.63.Final
| | +--- io.netty:netty-common:4.1.63.Final
| | +--- io.netty:netty-buffer:4.1.63.Final (*)
| | \--- io.netty:netty-resolver:4.1.63.Final
| | \--- io.netty:netty-common:4.1.63.Final
| +--- io.netty:netty-codec:4.1.63.Final
| | +--- io.netty:netty-common:4.1.63.Final
| | +--- io.netty:netty-buffer:4.1.63.Final (*)
| | \--- io.netty:netty-transport:4.1.63.Final (*)
| \--- io.netty:netty-handler:4.1.63.Final
| +--- io.netty:netty-common:4.1.63.Final
| +--- io.netty:netty-resolver:4.1.63.Final (*)
| +--- io.netty:netty-buffer:4.1.63.Final (*)
| +--- io.netty:netty-transport:4.1.63.Final (*)
| \--- io.netty:netty-codec:4.1.63.Final (*)
\--- io.netty:netty-all:4.1.67.Final