| /* |
| * 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. |
| */ |
| |
| if (project.hasProperty('release') && jdkVersion != '8') { |
| throw new GradleException("Releases must be built with Java 8") |
| } |
| |
| subprojects { |
| apply plugin: 'maven-publish' |
| apply plugin: 'signing' |
| afterEvaluate { |
| |
| task sourceJar(type: Jar, dependsOn: classes) { |
| archiveClassifier.set('sources') |
| from sourceSets.main.allSource |
| group 'build' |
| } |
| |
| task javadocJar(type: Jar, dependsOn: javadoc) { |
| archiveClassifier.set('javadoc') |
| from javadoc.destinationDir |
| group 'build' |
| } |
| |
| task testJar(type: Jar) { |
| archiveClassifier.set('tests') |
| from sourceSets.test.output |
| } |
| |
| artifacts { |
| archives sourceJar |
| archives javadocJar |
| archives testJar |
| testArtifacts testJar |
| } |
| |
| // add LICENSE and NOTICE |
| [jar, sourceJar, javadocJar, testJar].each { task -> |
| task.dependsOn rootProject.tasks.buildInfo |
| task.from("${rootDir}/build") { |
| include 'iceberg-build.properties' |
| } |
| task.from(rootDir) { |
| include 'LICENSE' |
| include 'NOTICE' |
| } |
| } |
| |
| publishing { |
| publications { |
| apache(MavenPublication) { |
| if (tasks.matching({task -> task.name == 'shadowJar'}).isEmpty()) { |
| from components.java |
| } else { |
| project.shadow.component(it) |
| } |
| |
| artifact sourceJar |
| artifact javadocJar |
| artifact testJar |
| |
| versionMapping { |
| allVariants { |
| fromResolutionResult() |
| } |
| } |
| |
| groupId = 'org.apache.iceberg' |
| pom { |
| name = 'Apache Iceberg' |
| description = 'A table format for huge analytic datasets' |
| url = 'https://iceberg.apache.org' |
| licenses { |
| license { |
| name = 'The Apache Software License, Version 2.0' |
| url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' |
| } |
| } |
| mailingLists { |
| mailingList { |
| name = 'Dev Mailing List' |
| post = 'dev@iceberg.apache.org' |
| subscribe = 'dev-subscribe@iceberg.apache.org' |
| unsubscribe = 'dev-unsubscribe@iceberg.apache.org' |
| } |
| } |
| issueManagement { |
| system = 'GitHub' |
| url = 'https://github.com/apache/iceberg/issues' |
| } |
| } |
| } |
| } |
| |
| repositories { |
| maven { |
| credentials { |
| username project.hasProperty('mavenUser') ? "$mavenUser" : "" |
| password project.hasProperty('mavenPassword') ? "$mavenPassword" : "" |
| } |
| // upload to the releases repository using ./gradlew -Prelease publish |
| def apacheSnapshotsRepoUrl = 'https://repository.apache.org/content/repositories/snapshots' |
| def apacheReleasesRepoUrl = 'https://repository.apache.org/service/local/staging/deploy/maven2' |
| def snapshotsRepoUrl = project.hasProperty('mavenSnapshotsRepo') ? "$mavenSnapshotsRepo" : "$apacheSnapshotsRepoUrl" |
| def releasesRepoUrl = project.hasProperty('mavenReleasesRepo') ? "$mavenReleasesRepo" : "$apacheReleasesRepoUrl" |
| url = project.hasProperty('release') ? releasesRepoUrl : snapshotsRepoUrl |
| } |
| } |
| } |
| |
| if (project.hasProperty('release')) { |
| signing { |
| useGpgCmd() |
| sign publishing.publications.apache |
| } |
| } |
| } |
| } |