hibernate-orm/gradle/publishing-pom.gradle

70 lines
2.4 KiB
Groovy
Raw Normal View History

/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
*/
apply plugin: 'maven-publish'
afterEvaluate {
// delay pom customization until project evaluation is complete
PublishingExtension gradlePublishingExtension = project.extensions.getByType( PublishingExtension )
Set<MavenPublication> mavenPublications = gradlePublishingExtension.publications.withType( MavenPublication )
if ( mavenPublications.size() <= 0 || mavenPublications.size() > 1 ) {
throw new GradleException( "Expecting just a single MavenPublication [$project.path], but found " + mavenPublications.size() + " : " + mavenPublications*.name )
}
project.configure( mavenPublications.first() ) {
pom.withXml {
asNode().appendNode( 'name', "Hibernate ORM - $project.name" )
asNode().appendNode( 'description', project.description )
Node lgplLicenseNode = asNode().appendNode( "licenses" ).appendNode( "license" )
lgplLicenseNode.appendNode( 'name', 'GNU Lesser General Public License' )
lgplLicenseNode.appendNode( 'url', 'http://www.gnu.org/licenses/lgpl-2.1.html' )
lgplLicenseNode.appendNode(
'comments',
'See discussion at http://hibernate.org/license for more details.'
)
lgplLicenseNode.appendNode( 'distribution', 'repo' )
asNode().children().last() + {
url 'http://hibernate.org'
organization {
name 'Hibernate.org'
url 'http://hibernate.org'
}
issueManagement {
system 'jira'
url 'https://hibernate.atlassian.net/browse/HHH'
}
scm {
url 'http://github.com/hibernate/hibernate-orm'
connection 'scm:git:http://github.com/hibernate/hibernate-orm.git'
developerConnection 'scm:git:git@github.com:hibernate/hibernate-orm.git'
}
developers {
developer {
id 'hibernate-team'
name 'The Hibernate Development Team'
organization 'Hibernate.org'
organizationUrl 'http://hibernate.org'
}
}
}
// TEMPORARY : currently Gradle Publishing feature is exporting dependencies as 'runtime' scope,
// rather than 'compile'; fix that.
if ( asNode().dependencies != null && asNode().dependencies.size() > 0 ) {
asNode().dependencies[0].dependency.each {
it.scope[0].value = 'compile'
}
}
}
}
}