gradle-verifyNoDuplicateClasses

 tasks.register("verifyNoDuplicateClasses") {
        group = "verification"
        description = "Checks the project for duplicate classes across all dependencies."

        doLast {
            val classFileNames = mutableSetOf<String>()
            val duplicatesClassFileNames = mutableSetOf<String>()
            val classFileNamesToJars = mutableMapOf<String, MutableList<String>>()

            configurations.runtimeClasspath.get().resolvedConfiguration.resolvedArtifacts.forEach { artifact ->
                val jarFile = JarFile(artifact.file)
                jarFile.entries().iterator()
                    .forEach { entry ->
                        if (entry.name.endsWith(".class")
                            && entry.name.endsWith("module-info.class").not()
                        ) {
                            val classFileName = entry.name

                            classFileNamesToJars.getOrPut(classFileName) { mutableListOf() }
                                .add(artifact.file.name)

                            if (classFileNames.contains(classFileName)) {
                                duplicatesClassFileNames.add(classFileName)
                            } else {
                                classFileNames.add(classFileName)
                            }
                        }
                    }
                jarFile.close()
            }

            if (duplicatesClassFileNames.isNotEmpty()) {
                println("Found duplicate classes:")
                duplicatesClassFileNames.forEach { duplicate ->
                    println("- $duplicate is in ${classFileNamesToJars[duplicate]}")
                }
                throw GradleException("${duplicatesClassFileNames.size} Duplicate classes found. Refer to output to see more details. You can run 'gradle dependencies' to have more details on the dependencies.")
            } else {
                println("No duplicate classes found.")
            }
        }
    }