From 65f16eeb81dceafa6dbb38b348fb7de22713c7c5 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Fri, 1 Nov 2013 08:55:57 -0500 Subject: [PATCH] Add release checks --- gradle/java-module.gradle | 1 + gradle/release-checks.gradle | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 gradle/release-checks.gradle diff --git a/gradle/java-module.gradle b/gradle/java-module.gradle index ddb11de7..10c5c9e5 100644 --- a/gradle/java-module.gradle +++ b/gradle/java-module.gradle @@ -1,5 +1,6 @@ apply from: JAVA_SCRIPT apply from: MAVEN_DEPLOYMENT_SCRIPT +apply from: "$rootDir/gradle/release-checks.gradle" configurations { jacoco //Configuration Group used by Sonar to provide Code Coverage using JaCoCo diff --git a/gradle/release-checks.gradle b/gradle/release-checks.gradle new file mode 100644 index 00000000..62cf4a5d --- /dev/null +++ b/gradle/release-checks.gradle @@ -0,0 +1,18 @@ +task checkDependencies << { + verifyNoDependenciesMatchingVersion(".*-SNAPSHOT") + if(releaseBuild) { + verifyNoDependenciesMatchingVersion(".*M.*") + verifyNoDependenciesMatchingVersion(".*RC.*") + } +} + +if(!snapshotBuild) { + tasks.findByPath('check')?.dependsOn checkRepositories, checkDependencies +} + +def verifyNoDependenciesMatchingVersion(def pattern) { + def dependencies = configurations.all*.allDependencies*.findAll { d -> 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") + } +} \ No newline at end of file