From c2866d96b46f88385a4eab73f75cabe18ac81843 Mon Sep 17 00:00:00 2001 From: Hans Dockter Date: Thu, 28 Oct 2010 11:58:36 -0400 Subject: [PATCH] Apply Hans' refactoring of pom customization logic --- gradle/maven-deployment.gradle | 105 +++++++++++---------------------- 1 file changed, 35 insertions(+), 70 deletions(-) diff --git a/gradle/maven-deployment.gradle b/gradle/maven-deployment.gradle index 8401c37d00..1da52540f6 100644 --- a/gradle/maven-deployment.gradle +++ b/gradle/maven-deployment.gradle @@ -20,7 +20,6 @@ // @author Chris Beams // ----------------------------------------------------------------------------- - // check that upload-related properties are defined and fail early if not // these properties ('s3AccessKey', etc) should be defined in // 'gradle.properties' in $HOME/.gradle/gradle.properties @@ -85,7 +84,7 @@ uploadArchives { deployerJars "org.springframework.build.aws:org.springframework.build.aws.maven:3.0.0.RELEASE" } - repositories.mavenDeployer { + def deployer = repositories.mavenDeployer { switch (version.releaseType) { case 'RELEASE': repository(url: releaseRepositoryUrl) @@ -119,87 +118,53 @@ uploadArchives { default: throw new GradleException("unknown ReleaseType") } - - pom.whenConfigured { pom -> - def optionalDeps = configurations.testRuntime.allDependencies.findAll { gradleDep -> - gradleDep.asDynamicObject.hasProperty('optional') && gradleDep.optional - } - def providedDeps = configurations.testRuntime.allDependencies.findAll { gradleDep -> - gradleDep.asDynamicObject.hasProperty('provided') && gradleDep.provided - } - pom.dependencies.each { mavenDep -> - mavenDep.optional = optionalDeps.any { optionalDep -> - optionalDep.group == mavenDep.groupId && - optionalDep.name == mavenDep.artifactId && - optionalDep.version == mavenDep.version - } - mavenDep.provided = providedDeps.any { providedDep -> - providedDep.group == mavenDep.groupId && - providedDep.name == mavenDep.artifactId && - providedDep.version == mavenDep.version - } - } - } - - pom.project { - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - } } + + configurePom(deployer.pom) } +/** + * Install gradle-built artifacts to the local m2 maven cache. + * Further customizes the 'install' task contributed by the 'maven' plugin. + */ install { group = 'Build' description = "Does a maven install of archives artifacts to local m2 cache" - def releaseRepositoryUrl = "file://${project.properties.mavenSyncRepoDir}" - def milestoneRepositoryUrl = 's3://maven.springframework.org/milestone' - def snapshotRepositoryUrl = 's3://maven.springframework.org/snapshot' + configurePom(repositories.mavenInstaller.pom) +} - // add a configuration with a classpath that includes our s3 maven deployer - configurations { deployerJars } - dependencies { - deployerJars "org.springframework.build.aws:org.springframework.build.aws.maven:3.0.0.RELEASE" - } - - repositories.mavenInstaller { - pom.whenConfigured { pom -> - def optionalDeps = configurations.testRuntime.allDependencies.findAll { gradleDep -> - gradleDep.asDynamicObject.hasProperty('optional') && gradleDep.optional +def configurePom(def pom) { + pom.whenConfigured { generatedPom -> + def optionalDeps = configurations.testRuntime.allDependencies.findAll { gradleDep -> + gradleDep.asDynamicObject.hasProperty('optional') && gradleDep.optional + } + def providedDeps = configurations.testRuntime.allDependencies.findAll { gradleDep -> + gradleDep.asDynamicObject.hasProperty('provided') && gradleDep.provided + } + generatedPom.dependencies.each { mavenDep -> + mavenDep.optional = optionalDeps.any { optionalDep -> + optionalDep.group == mavenDep.groupId && + optionalDep.name == mavenDep.artifactId && + optionalDep.version == mavenDep.version } - def providedDeps = configurations.testRuntime.allDependencies.findAll { gradleDep -> - gradleDep.asDynamicObject.hasProperty('provided') && gradleDep.provided + boolean isProvided = providedDeps.any { providedDep -> + providedDep.group == mavenDep.groupId && + providedDep.name == mavenDep.artifactId && + providedDep.version == mavenDep.version } - pom.dependencies.each { mavenDep -> - mavenDep.optional = optionalDeps.any { optionalDep -> - optionalDep.group == mavenDep.groupId && - optionalDep.name == mavenDep.artifactId && - optionalDep.version == mavenDep.version - } - def isProvided = providedDeps.any { providedDep -> - providedDep.group == mavenDep.groupId && - providedDep.name == mavenDep.artifactId && - providedDep.version == mavenDep.version - } - if (isProvided) { - mavenDep.scope = 'provided' - } + if (isProvided) { + mavenDep.scope = 'provided' } } + } - - pom.project { - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } + pom.project { + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' } } }