Apply Hans' refactoring of pom customization logic
This commit is contained in:
committed by
Chris Beams
parent
627ea3cff4
commit
c2866d96b4
@@ -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'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user