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.
178 lines
4.3 KiB
Groovy
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
|
|
} |