task checkDependencies << {
	verifyNoDependenciesMatchingVersion(".*-SNAPSHOT")
	if(releaseBuild) {
		verifyNoDependenciesMatchingVersion(".*M.*")
		verifyNoDependenciesMatchingVersion(".*RC.*")
	}
}

if(!snapshotBuild) {
	tasks.findByPath('check')?.dependsOn checkDependencies
}

def verifyNoDependenciesMatchingVersion(def pattern) {
	def dependencies = configurations.all*.allDependencies*.findAll { d ->
		def ignored = 'io.spring.platform:platform-versions'
		def groupAndName = "$d.group:$d.name".toString()
		ignored != groupAndName &&	d.version?.matches(pattern)
	}.flatten().toSet().join("\n	")
	if(dependencies) {
		throw new GradleException("${project.name} cannot have dependencies with a version that matches $pattern when its version is ${project.version}. Got\n	  $dependencies")
	}
}