diff --git a/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy b/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy index 5ef87fae..39eb3bad 100644 --- a/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy +++ b/buildSrc/src/main/groovy/org/springframework/restdocs/build/SampleBuildConfigurer.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2014-2015 the original author or authors. + * Copyright 2014-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,32 +51,25 @@ public class SampleBuildConfigurer { sampleBuild.group = "Build" if (new File(sampleDir, 'build.gradle').isFile()) { + Task gradleVersionsUpdate = createGradleVersionsUpdate(project) + sampleBuild.dependsOn gradleVersionsUpdate if (build) { Task gradleBuild = createGradleBuild(project, dependencies) Task verifyIncludesTask = createVerifyIncludes(project, new File(sampleDir, 'build/asciidoc')) verifyIncludesTask.dependsOn gradleBuild sampleBuild.dependsOn verifyIncludesTask - } - sampleBuild.doFirst { - replaceVersion(new File(this.workingDir, 'build.gradle'), - "ext\\['spring-restdocs.version'\\] = '.*'", - "ext['spring-restdocs.version'] = '${project.version}'") - replaceVersion(new File(this.workingDir, 'build.gradle'), - "restDocsVersion = \".*\"", - "restDocsVersion = \"${project.version}\"") + gradleBuild.dependsOn gradleVersionsUpdate } } else if (new File(sampleDir, 'pom.xml').isFile()) { + Task mavenVersionsUpdate = createMavenVersionsUpdate(project) + sampleBuild.dependsOn mavenVersionsUpdate if (build) { Task mavenBuild = createMavenBuild(project, sampleDir, dependencies) Task verifyIncludesTask = createVerifyIncludes(project, new File(sampleDir, 'target/generated-docs')) verifyIncludesTask.dependsOn(mavenBuild) sampleBuild.dependsOn verifyIncludesTask - } - sampleBuild.doFirst { - replaceVersion(new File(this.workingDir, 'pom.xml'), - '.*', - "${project.version}") + mavenBuild.dependsOn mavenVersionsUpdate } } else { @@ -85,6 +78,29 @@ public class SampleBuildConfigurer { return sampleBuild } + private Task createMavenVersionsUpdate(Project project) { + Task mavenVersionsUpdate = project.tasks.create "${name}MavenVersionUpdates" + mavenVersionsUpdate.doFirst { + replaceVersion(new File(this.workingDir, 'pom.xml'), + '.*', + "${project.version}") + } + return mavenVersionsUpdate + } + + private Task createGradleVersionsUpdate(Project project) { + Task gradleVersionsUpdate = project.tasks.create "${name}GradleVersionUpdates" + gradleVersionsUpdate.doFirst { + replaceVersion(new File(this.workingDir, 'build.gradle'), + "ext\\['spring-restdocs.version'\\] = '.*'", + "ext['spring-restdocs.version'] = '${project.version}'") + replaceVersion(new File(this.workingDir, 'build.gradle'), + "restDocsVersion = \".*\"", + "restDocsVersion = \"${project.version}\"") + } + return gradleVersionsUpdate + } + private Task createMavenBuild(Project project, File sampleDir, Object... dependencies) { Task mavenBuild = project.tasks.create("${name}Maven", Exec) mavenBuild.description = "Builds the ${name} sample with Maven"