1 import ru.vyarus.gradle.plugin.animalsniffer.* 2 <lambda>null3configure(subprojects) { 4 // Skip JDK 8 projects or unpublished ones 5 if (!shouldSniff()) return@configure 6 apply(plugin = "ru.vyarus.animalsniffer") 7 project.plugins.withType(JavaPlugin::class.java) { 8 configure<AnimalSnifferExtension> { 9 sourceSets = listOf((project.extensions.getByName("sourceSets") as SourceSetContainer).getByName("main")) 10 } 11 val signature: Configuration by configurations 12 dependencies { 13 signature("net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature") 14 signature("org.codehaus.mojo.signature:java17:1.0@signature") 15 } 16 17 if (project.name == coreModule) { 18 // Specific files so nothing from core is accidentally skipped 19 tasks.withType<AnimalSniffer>().configureEach { 20 exclude("**/future/FutureKt*") 21 exclude("**/future/ContinuationHandler*") 22 exclude("**/future/CompletableFutureCoroutine*") 23 24 exclude("**/stream/StreamKt*") 25 exclude("**/stream/StreamFlow*") 26 27 exclude("**/time/TimeKt*") 28 } 29 } 30 } 31 } 32 Projectnull33fun Project.shouldSniff(): Boolean { 34 // Skip all non-JVM projects 35 if (platformOf(project) != "jvm") return false 36 val name = project.name 37 if (name in unpublished || name in sourceless || name in androidNonCompatibleProjects) return false 38 return true 39 } 40