mirror of https://github.com/apache/iceberg.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
4.6 KiB
Groovy
148 lines
4.6 KiB
Groovy
/*
|
|
* 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 != '11') {
|
|
throw new GradleException("Releases must be built with Java 11")
|
|
}
|
|
|
|
subprojects {
|
|
def isBom = it.name == 'iceberg-bom'
|
|
def isOpenApi = it.name == 'iceberg-open-api'
|
|
|
|
apply plugin: 'maven-publish'
|
|
apply plugin: 'signing'
|
|
afterEvaluate {
|
|
|
|
if (!isBom) {
|
|
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 (isBom) {
|
|
from components.javaPlatform
|
|
} else if (isOpenApi) {
|
|
artifact testJar
|
|
artifact testFixturesJar
|
|
artifact shadowJar
|
|
} else {
|
|
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
|
|
}
|
|
}
|
|
}
|
|
}
|