blob: 4521c25b34a05dc0414490563ef72c91343f7b63 [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.
*/
//
// Configure artifact publishing into a build-local Maven repository. This is technically not required
// at all - maven artifacts can go directly to ASF Nexus - but smoke-testing scripts run checks on these
// artifacts.
//
configure(project(":lucene:distribution")) {
def mavenRepositoryDir = file("${buildDir}/maven-artifacts")
task mavenToBuild() {
outputs.dir(mavenRepositoryDir)
// In signed mode, collect signed artifacts. Otherwise collect
// unsigned JARs (and their checksums).
def mavenConventionTask = project.ext.withSignedArtifacts ?
"publishSignedJarsPublicationToBuildRepository" :
"publishJarsPublicationToBuildRepository"
dependsOn rootProject.ext.mavenProjects.collect {
it.tasks.matching { it.name == mavenConventionTask }
}
}
def cleanBuildTask = task cleanMavenBuildRepository(type: Delete) {
delete mavenRepositoryDir
}
configure(rootProject.ext.mavenProjects) { Project project ->
// Clean the build repository prior to publishing anything. Ensures we don't
// have multiple artifacts there.
tasks.matching { it.name ==~ /publish.+ToBuildRepository/ }.all {
dependsOn cleanBuildTask
}
plugins.withType(PublishingPlugin) {
publishing {
repositories {
maven {
name = "Build"
url = mavenRepositoryDir
}
}
}
}
}
}