blob: d75bf996f3b2abfc71491a947dabdb0e55e8d60a [file] [log] [blame]
/*
* 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.
*/
buildscript {
apply from: "${rootProject.projectDir}/gradle/scripts/repositories.gradle", to: buildscript
dependencies {
classpath (group: 'com.linkedin.pegasus', name: 'gradle-plugins', version: rootProject.pegasusVersion) {
exclude group: 'org.apache.ant'
}
}
}
apply plugin: 'java'
apply plugin: 'pegasus'
if (file('extraDependencies.gradle').exists()) {
apply from: 'extraDependencies.gradle'
}
dependencies {
dataModel externalDependency.pegasus.restliCommon
compile externalDependency.pegasus.data
compile externalDependency.pegasus.restliClient
compile externalDependency.pegasus.restliCommon
compile externalDependency.pegasus.pegasusCommon
}
// Configure sources and javadoc jars for the data template library
def dataTemplateName = project.name + "-data-template"
task dataTemplateSourcesJar(type: Jar, dependsOn: classes) {
from sourceSets.mainGeneratedDataTemplate.allSource
classifier = 'sources'
baseName = dataTemplateName
}
task dataTemplateJavadoc(type: Javadoc, dependsOn: classes) {
source sourceSets.mainGeneratedDataTemplate.allSource
classpath = files(sourceSets.mainGeneratedDataTemplate.compileClasspath)
destinationDir file("${rootProject.buildDir}/${dataTemplateName}/docs/javadoc")
}
task dataTemplateJavadocJar(type: Jar, dependsOn: 'dataTemplateJavadoc') {
from dataTemplateJavadoc
baseName = dataTemplateName
classifier = 'javadoc'
}
artifacts {
archives mainDataTemplateJar, dataTemplateSourcesJar, dataTemplateJavadocJar
}
def generateRestClient = file("${project.projectDir}/src/main/idl").exists()
if (generateRestClient) {
// Configure sources and javadoc jars for the rest client library
def restClientName = project.name + "-rest-client"
task restClientSourcesJar(type: Jar, dependsOn: classes) {
from sourceSets.mainGeneratedRest.allSource
classifier = 'sources'
baseName = restClientName
}
task restClientJavadoc(type: Javadoc, dependsOn: classes) {
source sourceSets.mainGeneratedRest.allSource
classpath = files(sourceSets.mainGeneratedRest.compileClasspath)
destinationDir file("${rootProject.buildDir}/${restClientName}/docs/javadoc")
}
task restClientJavadocJar(type: Jar, dependsOn: 'restClientJavadoc') {
from restClientJavadoc
baseName = restClientName
classifier = 'javadoc'
}
artifacts {
archives mainRestClientJar, restClientSourcesJar, restClientJavadocJar
}
publishing.publications {
restClient(MavenPublication) {
artifactId restClientName
artifacts = [mainRestClientJar, restClientSourcesJar, restClientJavadocJar]
pom pomAttributes
pom.withXml addRuntimeDependenciesToPom
}
}
}
install {
repositories {
mavenInstaller {
addFilter('data-template') { artifact, file -> artifact.name.contains("data-template")
}
addFilter('rest-client') { artifact, file -> artifact.name.contains("rest-client")
}
addFilter('') { artifact, file -> artifact.name == project.name
}
}
}
}
if (rootProject.ext.publishToMaven || rootProject.ext.publishToNexus) {
uploadArchives {
repositories {
mavenDeployer {
addFilter('data-template') { artifact, file -> artifact.name.contains("data-template")
}.project(rootProject.pomAttributes)
addFilter('rest-client') { artifact, file -> artifact.name.contains("rest-client")
}.project(rootProject.pomAttributes)
addFilter('') { artifact, file -> artifact.name == project.name
}.project(rootProject.pomAttributes)
}
}
}
}
publishing.publications {
dataTemplate(MavenPublication) {
artifactId dataTemplateName
artifacts = [mainDataTemplateJar, dataTemplateSourcesJar, dataTemplateJavadocJar]
pom pomAttributes
pom.withXml addRuntimeDependenciesToPom
}
}
artifactory {
publish {
defaults {
if (generateRestClient) {
publications('mavenJava', 'restClient', 'dataTemplate')
} else {
publications('mavenJava', 'dataTemplate')
}
}
}
}