blob: 1a15ce43d1878ed86730c5c1370979808f7a0d2f [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.
*/
// This project puts together a "distribution", assembling dependencies from
// various other projects.
plugins {
id 'base'
id 'distribution'
}
description = 'Solr distribution packaging'
ext {
distDir = file("$buildDir/solr-${version}")
devDir = file("$buildDir/dev")
}
configurations {
distSolr {
transitive = false
}
distSolrj
contrib
example
server
docs
docker
}
dependencies {
distSolrj project(":solr:solrj")
[":solr:contrib:analysis-extras",
":solr:contrib:analytics",
":solr:contrib:extraction",
":solr:contrib:clustering",
":solr:contrib:jaegertracer-configurator",
":solr:contrib:langid",
":solr:contrib:ltr",
":solr:contrib:prometheus-exporter",
":solr:contrib:scripting"
].each { contribName ->
distSolr project(contribName)
contrib project(path: contribName, configuration: "packaging")
}
distSolr project(":solr:core")
distSolr project(":solr:server")
distSolr project(":solr:solrj")
distSolr project(":solr:test-framework")
example project(path: ":solr:example", configuration: "packaging")
server project(path: ":solr:server", configuration: "packaging")
// Copy files from documentation output
docs project(path: ':solr:documentation', configuration: 'minimalSite')
docker project(path: ':solr:docker', configuration: 'packaging')
}
distributions {
main {
distributionBaseName = 'solr'
contents {
// TODO: This is missing module README files, as compared to 8x
// Manually correct posix permissions (matters when packaging on Windows).
filesMatching([
"**/*.sh",
"**/bin/post",
"**/bin/postlogs",
"**/bin/solr",
"**/bin/init.d/solr",
"**/bin/solr-exporter",
"**/docker/scripts/*",
]) { copy ->
copy.setMode(0755)
}
from(project(":solr").projectDir, {
include "bin/**"
include "licenses/**"
exclude "licenses/README.committers.txt"
include "CHANGES.txt"
include "LICENSE.txt"
include "NOTICE.txt"
include "README.md"
})
// Should we include Lucene changes?
/*
from(project(":lucene").projectDir, {
include "CHANGES.txt"
rename { file -> 'LUCENE_CHANGES.txt' }
})
*/
from(configurations.contrib, {
into "contrib"
})
from(configurations.distSolr, {
into "dist"
})
from(configurations.distSolrj - configurations.distSolr, {
into "dist/solrj-lib"
})
from(configurations.example, {
into "example"
})
from(configurations.server, {
into "server"
})
from(configurations.docs, {
into "docs"
})
from(configurations.docker, {
into "docker"
})
}
}
}
installDist {
into distDir
}
task dev(type: Copy) {
description "Assemble Solr distribution into 'development' folder at ${devDir}"
group "build"
from installDist.outputs
into devDir
}
assemble.dependsOn installDist