diff --git a/kmqtt-broker/build.gradle.kts b/kmqtt-broker/build.gradle.kts
index 824d1d53a12f9367b99be3e4da89048d6752cb7b..55bcf674e90b894b44a24569dc3aa2cd5141e826 100644
--- a/kmqtt-broker/build.gradle.kts
+++ b/kmqtt-broker/build.gradle.kts
@@ -133,6 +133,13 @@ tasks {
     }
 }
 
+// Fix Gradle warning about signing tasks using publishing task outputs without explicit dependencies
+// https://github.com/gradle/gradle/issues/26091
+tasks.withType<AbstractPublishToMaven>().configureEach {
+    val signingTasks = tasks.withType<Sign>()
+    mustRunAfter(signingTasks)
+}
+
 publishing {
     repositories {
         maven {
diff --git a/kmqtt-client/build.gradle.kts b/kmqtt-client/build.gradle.kts
index 0ac9bc14953a23fab9aa60ceb7aa70d4fe831615..8d7cae48bc52fd936d4378cd8419c7e71415fdef 100644
--- a/kmqtt-client/build.gradle.kts
+++ b/kmqtt-client/build.gradle.kts
@@ -123,6 +123,13 @@ kotlin {
     }
 }
 
+// Fix Gradle warning about signing tasks using publishing task outputs without explicit dependencies
+// https://github.com/gradle/gradle/issues/26091
+tasks.withType<AbstractPublishToMaven>().configureEach {
+    val signingTasks = tasks.withType<Sign>()
+    mustRunAfter(signingTasks)
+}
+
 publishing {
     repositories {
         maven {
diff --git a/kmqtt-common/build.gradle.kts b/kmqtt-common/build.gradle.kts
index d2ea4867bcd8fb059574330400a6ff1f86525d64..fcb61598a342a16708a475669ccb1e1b9bbc9c9c 100644
--- a/kmqtt-common/build.gradle.kts
+++ b/kmqtt-common/build.gradle.kts
@@ -163,6 +163,13 @@ kotlin {
     }
 }
 
+// Fix Gradle warning about signing tasks using publishing task outputs without explicit dependencies
+// https://github.com/gradle/gradle/issues/26091
+tasks.withType<AbstractPublishToMaven>().configureEach {
+    val signingTasks = tasks.withType<Sign>()
+    mustRunAfter(signingTasks)
+}
+
 publishing {
     repositories {
         maven {