mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
799a12ad63
Today when running gradle clean :distribution:(integ-test-zip|tar|zip):assemble, the created archive distribution will be missing the empty plugins directory. This is because the empty plugins folder created in the build folder for the copy spec task is created during configuration and then is later wiped away by the clean task. This commit addresses this issue, by pushing creation of the directory out of the configuration phase. Relates #21271
65 lines
2.6 KiB
Groovy
65 lines
2.6 KiB
Groovy
/*
|
|
* Licensed to Elasticsearch under one or more contributor
|
|
* license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright
|
|
* ownership. Elasticsearch 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.elasticsearch.gradle.plugin.PluginBuildPlugin
|
|
|
|
task buildZip(type: Zip) {
|
|
dependsOn createPluginsDir
|
|
baseName = 'elasticsearch'
|
|
with archivesFiles
|
|
}
|
|
|
|
artifacts {
|
|
'default' buildZip
|
|
archives buildZip
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
nebula {
|
|
artifactId 'elasticsearch'
|
|
artifact buildZip
|
|
}
|
|
/* HUGE HACK: the underlying maven publication library refuses to deploy any attached artifacts
|
|
* when the packaging type is set to 'pom'. But Sonatype's OSS repositories require source files
|
|
* for artifacts that are of type 'zip'. We already publish the source and javadoc for Elasticsearch
|
|
* under the various other subprojects. So here we create another publication using the same
|
|
* name that has the "real" pom, and rely on the fact that gradle will execute the publish tasks
|
|
* in alphabetical order. This lets us publish the zip file and even though the pom says the
|
|
* type is 'pom' instead of 'zip'. We cannot setup a dependency between the tasks because the
|
|
* publishing tasks are created *extremely* late in the configuration phase, so that we cannot get
|
|
* ahold of the actual task. Furthermore, this entire hack only exists so we can make publishing to
|
|
* maven local work, since we publish to maven central externally. */
|
|
nebulaRealPom(MavenPublication) {
|
|
artifactId 'elasticsearch'
|
|
pom.packaging = 'pom'
|
|
pom.withXml { XmlProvider xml ->
|
|
Node root = xml.asNode()
|
|
root.appendNode('name', 'Elasticsearch')
|
|
root.appendNode('description', 'A Distributed RESTful Search Engine')
|
|
root.appendNode('url', PluginBuildPlugin.urlFromOrigin(project.scminfo.origin))
|
|
Node scmNode = root.appendNode('scm')
|
|
scmNode.appendNode('url', project.scminfo.origin)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
integTest.dependsOn buildZip
|