| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| plugins { |
| id 'java-platform' |
| id 'maven-publish' |
| id 'geode-dependency-constraints' |
| id 'signing' |
| } |
| |
| |
| def apacheLicense = ''' |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ''' |
| |
| publishing { |
| publications { |
| maven(MavenPublication) { |
| from components.javaPlatform |
| |
| pom { |
| name = 'Apache Geode' |
| description = 'Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing' |
| url = 'http://geode.apache.org' |
| |
| scm { |
| url = 'https://github.com/apache/geode' |
| connection = 'scm:git:https://github.com:apache/geode.git' |
| developerConnection = 'scm:git:https://github.com:apache/geode.git' |
| } |
| |
| licenses { |
| license { |
| name = 'The Apache Software License, Version 2.0' |
| url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' |
| } |
| } |
| withXml { |
| // Published Geode artifacts are constrained to match the version of this BOM. |
| // We exclude any child of the :boms subproject |
| def thisNode = asNode() |
| project.rootProject.subprojects.each { p -> |
| if (p.findProperty('constrainVersionInBom') |
| && !project(':boms').allprojects.contains(p)) { |
| def geodeDependency = |
| thisNode.dependencyManagement.dependencies*.appendNode('dependency') |
| geodeDependency*.appendNode('groupId')*.setValue(p.group) |
| geodeDependency*.appendNode('artifactId')*.setValue(p.name) |
| geodeDependency*.appendNode('version')*.setValue(p.version.toString()) |
| geodeDependency*.appendNode('scope')*.setValue('compile') |
| } |
| } |
| thisNode |
| } |
| withXml { |
| def providerAsElement = asElement() |
| providerAsElement.insertBefore( |
| providerAsElement.ownerDocument().createComment(apacheLicense), |
| providerAsElement.firstChild) |
| } |
| |
| } |
| } |
| } |
| repositories { |
| maven { |
| // Use specified mavenRepository if provided, else use release or snapshot defaults. |
| url = project.findProperty("mavenRepository") ?: |
| project.isReleaseVersion ? project.mavenReleaseUrl : project.mavenSnapshotUrl |
| if (url.toString().startsWith("http") || url.toString().startsWith("sftp")) { |
| // Username / password credentials are only supported for http, https, and sftp repos. |
| // See the Gradle documentation on Repository Types for more information. |
| credentials { |
| username project.findProperty("mavenUsername") |
| password project.findProperty("mavenPassword") |
| } |
| } |
| } |
| } |
| } |
| |
| signing { |
| required({project.isReleaseVersion && project.hasProperty('signing.keyId') && project.hasProperty('signing.secretKeyRingFile')}) |
| sign publishing.publications.maven |
| } |
| |
| apply from: "${rootDir}/${scriptDir}/check-pom.gradle" |