Automatically align version of samples' dependency with main version

This commit enhances the tasks that build the samples to
automatically update the version of their spring-restdocs dependency
to match the version of the main project.
This commit is contained in:
Andy Wilkinson
2015-09-08 11:20:28 +01:00
parent c2da4c912a
commit fece9547ea
3 changed files with 34 additions and 8 deletions

View File

@@ -20,6 +20,7 @@ import org.gradle.api.GradleException
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.Exec
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.GradleBuild
public class SampleBuildConfigurer {
@@ -65,6 +66,13 @@ public class SampleBuildConfigurer {
"${System.env.MAVEN_HOME}/bin/mvn${suffix}" : "mvn${suffix}",
'clean', 'package']
mavenBuild.dependsOn dependencies
mavenBuild.doFirst {
replaceVersion(new File(this.workingDir, 'pom.xml'),
'<spring-restdocs.version>.*</spring-restdocs.version>',
"<spring-restdocs.version>${project.version}</spring-restdocs.version>")
}
return mavenBuild
}
@@ -75,9 +83,25 @@ public class SampleBuildConfigurer {
gradleBuild.dir = this.workingDir
gradleBuild.tasks = ['clean', 'build']
gradleBuild.dependsOn dependencies
gradleBuild.doFirst {
replaceVersion(new File(this.workingDir, 'build.gradle'),
"springRestdocsVersion = '.*'",
"springRestdocsVersion = '${project.version}'")
}
return gradleBuild
}
private void replaceVersion(File target, String pattern, String replacement) {
def lines = target.readLines()
target.withWriter { writer ->
lines.each { line ->
writer.println(line.replaceAll(pattern, replacement))
}
}
}
private Task createVerifyIncludes(Project project, File buildDir) {
Task verifyIncludes = project.tasks.create("${name}VerifyIncludes")
verifyIncludes.description = "Verifies the includes in the ${name} sample"

View File

@@ -18,6 +18,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
<spring-restdocs.version>1.0.0.BUILD-SNAPSHOT</spring-restdocs.version>
</properties>
<dependencies>
@@ -49,7 +50,7 @@
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>${spring-restdocs.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -124,4 +125,4 @@
</repository>
</repositories>
</project>
</project>

View File

@@ -26,6 +26,11 @@ group = 'com.example'
sourceCompatibility = 1.7
targetCompatibility = 1.7
ext {
snippetsDir = file('build/generated-snippets')
springRestdocsVersion = '1.0.0.BUILD-SNAPSHOT'
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
compile 'org.springframework.boot:spring-boot-starter-hateoas'
@@ -35,11 +40,7 @@ dependencies {
testCompile 'com.jayway.jsonpath:json-path'
testCompile 'org.springframework.boot:spring-boot-starter-test'
testCompile 'org.springframework.restdocs:spring-restdocs-mockmvc:1.0.0.BUILD-SNAPSHOT'
}
ext {
snippetsDir = file('build/generated-snippets')
testCompile "org.springframework.restdocs:spring-restdocs-mockmvc:$springRestdocsVersion"
}
test {
@@ -61,4 +62,4 @@ jar {
}
eclipseJdt.onlyIf { false }
cleanEclipseJdt.onlyIf { false }
cleanEclipseJdt.onlyIf { false }