Constraint all transitive akka-* dependencies
diff --git a/settings.gradle b/settings.gradle
index 138f8e5..de31890 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -35,9 +35,14 @@
 
 gradle.ext.scala = [
     version: '2.12.7',
+    depVersion  : '2.12',
     compileFlags: ['-feature', '-unchecked', '-deprecation', '-Xfatal-warnings', '-Ywarn-unused-import']
 ]
 
+
+gradle.ext.akka = [version : '2.6.12']
+gradle.ext.akka_http = [version : '10.2.4']
+
 gradle.ext.scalafmt = [
     version: '1.5.0',
     config: new File(rootProject.projectDir, '.scalafmt.conf')
diff --git a/tests/build.gradle b/tests/build.gradle
index 1dc2da8..2654d91 100644
--- a/tests/build.gradle
+++ b/tests/build.gradle
@@ -24,6 +24,25 @@
     mavenLocal()
 }
 
+pluginManager.withPlugin('scala') {
+    // Constraint all transitive akka-* dependencies to the one we want to use to avoid issues.
+    // List generated via
+    // ./gradlew :test:dependencies | grep -o 'akka-.*_' | cut -c 6- | rev | cut -c 2- | rev | sort -u
+    def cons = project.getDependencies().getConstraints()
+    def akka = ['akka-actor', 'akka-cluster', 'akka-cluster-metrics', 'akka-cluster-tools', 'akka-coordination',
+                'akka-discovery', 'akka-distributed-data', 'akka-protobuf', 'akka-remote', 'akka-slf4j',
+                'akka-stream', 'akka-stream-testkit', 'akka-testkit']
+    def akkaHttp = ['akka-http', 'akka-http-core', 'akka-http-spray-json', 'akka-http-testkit', 'akka-http-xml',
+                    'akka-parsing', 'akka-http2-support']
+
+    akka.forEach {
+        cons.add('compile', "com.typesafe.akka:${it}_${gradle.scala.depVersion}:${gradle.akka.version}")
+    }
+    akkaHttp.forEach {
+        cons.add('compile', "com.typesafe.akka:${it}_${gradle.scala.depVersion}:${gradle.akka_http.version}")
+    }
+}
+
 tasks.withType(Test) {
     testLogging {
         events "passed", "skipped", "failed"