/* * 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(rootProject) { def urlVersion = project.baseVersion.replace('.', '_') def refguideUrlVersion = project.baseVersion.replaceFirst(/^(\d+)\.(\d+).*$/, '$1_$2') ext { luceneDocUrl = project.propertyOrDefault('lucene.javadoc.url', { if (project.version != project.baseVersion) { // non-release build new File(project('lucene:documentation').buildDir, 'site').toURI().toASCIIString().minus(~'/$') } else { // release build "https://lucene.apache.org/core/${urlVersion}" } }()) solrDocUrl = project.propertyOrDefault('solr.javadoc.url', { if (project.version != project.baseVersion) { // non-release build new File(project('solr:documentation').buildDir, 'site').toURI().toASCIIString().minus(~'/$') } else { // release build "https://lucene.apache.org/solr/${urlVersion}" } }()) solrRefguideUrl = project.propertyOrDefault('solr.refguide.url', "https://lucene.apache.org/solr/guide/${refguideUrlVersion}") } task documentation() { group = 'documentation' description = 'Generate all documentation' dependsOn ':lucene:documentation:assemble' dependsOn ':solr:documentation:assemble' } } // docroot will point to Lucene and Solr relative directory for each sub-project. configure(subprojects.findAll { it.path == ':lucene:documentation' || it.path == ':solr:documentation' }) { ext { docroot = file("${buildDir}/site") docrootMinimal = file("${buildDir}/minimalSite") markdownSrc = file("src/markdown") assets = file("src/assets") } task documentation() { group = 'documentation' description = "Generate ${project.name.capitalize()} documentation" dependsOn project.parent.subprojects.collect { prj -> prj.tasks.matching { it.name == 'renderSiteJavadoc' } } dependsOn 'changesToHtml','copyDocumentationAssets', 'markdownToHtml','createDocumentationIndex' } task copyDocumentationAssets(type: Copy) { includeEmptyDirs = false from(project.assets) into project.docroot } assemble { dependsOn documentation } configurations { site } artifacts { site project.docroot, { builtBy documentation } } } configure(project(':solr:documentation')) { task documentationMinimal() { group = 'documentation' description = "Generate stub Solr documentation pointing to web page (that's part of Solr TGZ)" dependsOn 'copyMiniDocumentationAssets','createMiniDocumentationIndex','copyChangesToHtmlForMiniSite' } task copyChangesToHtmlForMiniSite(type: Copy) { from project.docroot into project.docrootMinimal include 'changes/**' dependsOn 'changesToHtml' } task copyMiniDocumentationAssets(type: Copy) { includeEmptyDirs = false from('src/assets') into project.docrootMinimal } assemble { dependsOn documentationMinimal } configurations { minimalSite } artifacts { minimalSite project.docrootMinimal, { builtBy documentationMinimal } } } configure(subprojects.findAll { it.path == ':lucene' || it.path == ':solr' }) { ext { docroot = project('documentation').docroot docrootMinimal = project('documentation').docrootMinimal } }