Project: Spring Framework
Code Location: git://github.com/SpringSource/spring-integration.gitmaster
Browse
/
Download File
publish-maven.gradle
apply plugin: 'maven'

ext.optionalDeps = []
ext.providedDeps = []

ext.optional = { optionalDeps << it }
ext.provided = { providedDeps << it }

install {
	repositories.mavenInstaller {
		customizePom(pom, project)
	}
}

def customizePom(pom, gradleProject) {
	pom.whenConfigured { generatedPom ->
		// respect 'optional' and 'provided' dependencies
		gradleProject.optionalDeps.each { dep ->
			generatedPom.dependencies.find { it.artifactId == dep.name }?.optional = true
		}
		gradleProject.providedDeps.each { dep ->
			generatedPom.dependencies.find { it.artifactId == dep.name }?.scope = 'provided'
		}

		// eliminate test-scoped dependencies (no need in maven central poms)
		generatedPom.dependencies.removeAll { dep ->
			dep.scope == 'test'
		}

		// add all items necessary for maven central publication
		generatedPom.project {
			name = gradleProject.description
			description = gradleProject.description
			url = linkHomepage
			organization {
				name = 'SpringIO'
				url = 'https://spring.io'
			}
			licenses {
				license {
					name 'The Apache Software License, Version 2.0'
					url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
					distribution 'repo'
				}
			}

			scm {
				url = linkScmUrl
				connection = 'scm:git:' + linkScmConnection
				developerConnection = 'scm:git:' + linkScmDevConnection
			}

			issueManagement {
				system = "Jira"
				url = linkIssue
			}

			developers {
				developer {
					id = 'garyrussell'
					name = 'Gary Russell'
					email = 'grussell@gopivotal.com'
					roles = ["project lead"]
				}
				developer {
					id = 'markfisher'
					name = 'Mark Fisher'
					email = 'mfisher@gopivotal.com'
					roles = ["project founder and lead emeritus"]
				}
				developer {
					id = 'ghillert'
					name = 'Gunnar Hillert'
					email = 'ghillert@gopivotal.com'
				}
				developer {
					id = 'abilan'
					name = 'Artem Bilan'
					email = 'abilan@gopivotal.com'
				}
			}
		}
	}
}