blob: bba6b23c0499e83fffd9c945b9ebf728b3143ef1 [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.
*/
import org.gradle.api.internal.artifacts.publish.DefaultPublishArtifact
ext.artifactoryUser = project.hasProperty('artifactoryUser') ? project.artifactoryUser : System.getenv('ARTIFACTORY_USER')
ext.artifactoryPassword = project.hasProperty('artifactoryPassword') ? project.artifactoryPassword : System.getenv('ARTIFACTORY_PASSWORD')
if (!artifactoryUser) {
// try to read from properties
def artifactoryFile = file('artifactory.properties')
if (artifactoryFile.exists()) {
def props = new Properties()
props.load(artifactoryFile.newReader())
ext.artifactoryUser = props.getProperty('artifactoryUser','')
ext.artifactoryPassword = props.getProperty('artifactoryPassword','')
}
}
logger.lifecycle "ArtifactoryUser user: $artifactoryUser"
allprojects {
if (project == rootProject || rootProject.ext.modules().contains(project)) {
apply plugin: 'com.jfrog.artifactory-upload'
artifactory {
contextUrl = project.hasProperty('artifactoryContext') ? project.artifactoryContext : 'https://oss.jfrog.org'
resolve {
repository {
repoKey = 'libs-release'
}
}
publish {
excludePatterns = [
// 'org/codehaus/groovy/groovy/**',
// 'org/codehaus/groovy/groovy-ant/**',
// 'org/codehaus/groovy/groovy-backports-compat23/**',
// 'org/codehaus/groovy/groovy-binary/**',
// 'org/codehaus/groovy/groovy-bsf/**',
// 'org/codehaus/groovy/groovy-console/**',
// 'org/codehaus/groovy/groovy-docgenerator/**',
// 'org/codehaus/groovy/groovy-groovydoc/**',
// 'org/codehaus/groovy/groovy-groovysh/**',
// 'org/codehaus/groovy/groovy-jmx/**',
// 'org/codehaus/groovy/groovy-json/**',
// 'org/codehaus/groovy/groovy-jsr223/**',
// 'org/codehaus/groovy/groovy-macro/**',
// 'org/codehaus/groovy/groovy-nio/**',
// 'org/codehaus/groovy/groovy-servlet/**',
// 'org/codehaus/groovy/groovy-sql/**',
// 'org/codehaus/groovy/groovy-swing/**',
// 'org/codehaus/groovy/groovy-templates/**',
// 'org/codehaus/groovy/groovy-test/**',
// 'org/codehaus/groovy/groovy-testng/**',
// 'org/codehaus/groovy/groovy-xml/**',
'org/codehaus/groovy/groovy/*/groovy-all-*',
'org/codehaus/groovy/groovy/*/groovy-backports-*',
'org/codehaus/groovy/groovy/*/groovy-binary-*'
].join(',')
repository {
repoKey = project.hasProperty('artifactoryRepoKey') ? project.artifactoryRepoKey : 'oss-snapshot-local'
//The Artifactory repository key to publish to
//when using oss.jfrog.org the credentials are from Bintray. For local build we expect them to be found in
//~/.gradle/gradle.properties, otherwise to be set in the build server
username = rootProject.artifactoryUser
password = rootProject.artifactoryPassword
}
}
}
}
}
artifactoryPublish {
def curDate = new Date()
def pomSource = { a -> "$projectDir/target/poms/pom-${a.name - 'groovy-'}.xml" }
def destBase = { a -> "org/codehaus/groovy/${a.name}/${version}/${a.name}-${version}${a.classifier ? '-' + a.classifier : ''}" }
def newDetails = { orig, newFile, newExt, newType -> gradleDeployDetails(new DefaultPublishArtifact(
orig.name, newExt, newType, orig.classifier, curDate, newFile), 'artifacts', destBase(orig) + '.' + newExt) }
def makeTransformedDetails = { orig -> newDetails(orig, orig.file, orig.extension, orig.extension) }
def makeTransformedPomDetails = { orig -> newDetails(orig, file(pomSource(orig)), 'pom', 'pom') }
def makeTransformedPomSigDetails = { orig -> newDetails(orig, file(pomSource(orig) + '.asc'), 'pom.asc', 'asc') }
mavenDescriptor = new File("$projectDir/target/poms/pom-groovy.xml")
doFirst{
configurations.archives.artifacts.findAll{ it.name != project.name }.each {
// the plugin we are using uses the project name rather than the artifact name
// as the artifactId, so we add the transformed one ourselves
// this also covers signatures which we already added during install
deployDetails.add(makeTransformedDetails(it))
if (!it.classifier && (it.type == 'jar' || it.type == 'zip')) {
// add the pom and its signature
deployDetails.add(makeTransformedPomDetails(it))
if (isReleaseVersion) {
deployDetails.add(makeTransformedPomSigDetails(it))
}
}
}
deployDetails.add(makeTransformedPomDetails(name: 'groovy-all'))
if (isReleaseVersion) {
deployDetails.add(makeTransformedPomSigDetails(name: 'groovy-all'))
allprojects {
if (project == rootProject || rootProject.ext.modules().contains(project)) {
configurations.archives.artifacts.findAll {
it.name == project.name && it.type == 'jar' && it.extension == 'jar' && !it.classifier
}.each {
// add pom signatures
def pomSigLocation = "$project.projectDir/target/poms/pom-${project == rootProject ? 'groovy' : 'default'}.xml.asc"
deployDetails.add(newDetails(it, file(pomSigLocation), 'pom.asc', 'pom'))
}
}
}
}
}
}
artifactoryPublish.dependsOn(['backportJars', 'install'])