diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt
index fba09c2af..e6c010eef 100644
--- a/buildSrc/src/main/kotlin/Versions.kt
+++ b/buildSrc/src/main/kotlin/Versions.kt
@@ -161,6 +161,10 @@ const val `caller-finder` = "io.github.karlatemp:caller:1.1.1"
 
 const val `android-runtime` = "com.google.android:android:${Versions.android}"
 const val `netty-all` = "io.netty:netty-all:${Versions.netty}"
+const val `netty-handler` = "io.netty:netty-handler:${Versions.netty}"
+const val `netty-common` = "io.netty:netty-common:${Versions.netty}"
+const val `netty-transport` = "io.netty:netty-transport:${Versions.netty}"
+const val `netty-buffer` = "io.netty:netty-buffer:${Versions.netty}"
 const val `bouncycastle` = "org.bouncycastle:bcprov-jdk15on:${Versions.bouncycastle}"
 
 const val `maven-resolver-api` = "org.apache.maven.resolver:maven-resolver-api:${Versions.mavenArtifactResolver}"
diff --git a/mirai-core/build.gradle.kts b/mirai-core/build.gradle.kts
index 263eda574..695db5b63 100644
--- a/mirai-core/build.gradle.kts
+++ b/mirai-core/build.gradle.kts
@@ -58,7 +58,7 @@ kotlin {
         findByName("jvmBaseMain")?.apply {
             dependencies {
                 implementation(`log4j-api`)
-                implementation(`netty-all`)
+                implementation(`netty-handler`)
                 implementation(`ktor-client-okhttp`)
                 api(`kotlinx-coroutines-jdk8`) // use -jvm modules for this magic target 'jvmBase'
             }