Files
spring-restdocs/build.gradle
Andy Wilkinson 51051de4c4 Improve contents of generated pom files
Previously, the generated pom files were uncustomised and relied on
Gradle’s default output. Such pom files are problematic for a couple
of reasons: they include test dependencies and they don’t include the
metadata that’s required for publishing to Maven Central.

This commit customises the generated pom files to include the required
metadata and to remove any test dependencies.
2015-09-03 15:07:59 +01:00

178 lines
4.3 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']) {
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'
}
}
configurations {
archives
}
artifacts {
archives docsZip
}