Files
spring-restdocs/build.gradle
Andy Wilkinson dc9af9599e Include documentation samples in the main docs zip
Previously, to see an example of the documentation that can be
produced by Spring REST Docs, users had to clone the repository and
build one of the samples.

This commit makes it easier to see what Spring REST Docs can do by
updating the docs zip that's automatically published to docs.spring.io
to include both the API Guide and the Getting Started Guide from the
RESTful notes sample.

Closes gh-112
2015-09-10 10:10:05 +01:00

182 lines
4.4 KiB
Groovy

buildscript {
repositories {
jcenter()
maven { url 'https://repo.spring.io/plugins-release' }
}
dependencies {
classpath 'io.spring.gradle:dependency-management-plugin:0.5.3.RELEASE'
classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.7'
}
}
allprojects {
group = 'org.springframework.restdocs'
repositories {
jcenter()
}
}
apply plugin: 'samples'
apply plugin: 'sonar-runner'
sonarRunner {
sonarProperties {
property 'sonar.jacoco.reportPath', "${buildDir.name}/jacoco.exec"
property 'sonar.java.coveragePlugin', 'jacoco'
property 'sonar.links.ci', 'https://build.spring.io/browse/SRD'
property 'sonar.links.homepage', 'https://github.com/spring-projects/spring-restdocs'
property 'sonar.links.issue', 'https://github.com/spring-projects/spring-restdocs'
property 'sonar.links.scm', 'https://github.com/spring-projects/spring-restdocs'
}
}
ext {
springVersion = '4.1.7.RELEASE'
javadocLinks = [
'http://docs.oracle.com/javase/8/docs/api/',
"http://docs.spring.io/spring-framework/docs/$springVersion/javadoc-api/",
'https://docs.jboss.org/hibernate/stable/beanvalidation/api/'
] as String[]
}
subprojects {
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'propdeps'
apply plugin: 'propdeps-eclipse'
apply plugin: 'propdeps-maven'
apply plugin: 'maven'
apply from: "${rootProject.projectDir}/gradle/publish-maven.gradle"
sourceCompatibility = 1.7
targetCompatibility = 1.7
dependencyManagement {
imports {
mavenBom "org.springframework:spring-framework-bom:$springVersion"
}
dependencies {
dependency 'com.fasterxml.jackson.core:jackson-databind:2.4.6'
dependency 'com.samskivert:jmustache:1.10'
dependency 'javax.servlet:javax.servlet-api:3.1.0'
dependency 'javax.validation:validation-api:1.1.0.Final'
dependency 'junit:junit:4.12'
dependency 'org.hamcrest:hamcrest-core:1.3'
dependency 'org.hamcrest:hamcrest-library:1.3'
dependency 'org.hibernate:hibernate-validator:5.2.1.Final'
dependency 'org.mockito:mockito-core:1.10.19'
dependency 'org.springframework.hateoas:spring-hateoas:0.17.0.RELEASE'
dependency 'org.jacoco:org.jacoco.agent:0.7.2.201409121644'
}
}
configurations {
jacoco
}
dependencies {
jacoco 'org.jacoco:org.jacoco.agent::runtime'
}
test {
testLogging {
exceptionFormat "full"
}
}
javadoc {
description = "Generates project-level javadoc for use in -javadoc jar"
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = "Spring REST Docs $version"
options.docTitle = "${options.header} API"
options.links = javadocLinks
options.addStringOption '-quiet'
}
eclipseJdt.onlyIf { false }
cleanEclipseJdt.onlyIf { false }
task sourcesJar(type: Jar) {
classifier = 'sources'
from project.sourceSets.main.allSource
}
task javadocJar(type: Jar) {
classifier = "javadoc"
from javadoc
}
artifacts {
archives sourcesJar
archives javadocJar
}
}
samples {
dependOn 'spring-restdocs-core:install'
dependOn 'spring-restdocs-mockmvc:install'
restNotesSpringHateoas {
workingDir 'samples/rest-notes-spring-hateoas'
}
restNotesSpringDataRest {
workingDir 'samples/rest-notes-spring-data-rest'
}
}
task api (type: Javadoc) {
group = "Documentation"
description = "Generates aggregated Javadoc API documentation."
dependsOn {
subprojects.collect {
it.tasks.getByName("jar")
}
}
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.author = true
options.header = "Spring REST Docs $version"
options.splitIndex = true
options.links = javadocLinks
options.addStringOption '-quiet'
source subprojects.collect { project ->
project.sourceSets.main.allJava
}
destinationDir = new File(buildDir, "api")
doFirst {
classpath = files(subprojects.collect { it.sourceSets.main.compileClasspath })
}
}
task docsZip(type: Zip, dependsOn: [':docs:asciidoctor', ':api', ':buildSamples']) {
group = 'Distribution'
baseName = 'spring-restdocs'
classifier = 'docs'
description = "Builds -${classifier} archive containing API and reference documentation"
destinationDir = file("${project.buildDir}/distributions")
from(project.tasks.findByPath(':docs:asciidoctor')) {
into 'reference'
}
from(api) {
into 'api'
}
from(file('samples/rest-notes-spring-hateoas/build/asciidoc/html5')) {
into 'samples/restful-notes'
}
}
configurations {
archives
}
artifacts {
archives docsZip
}