Added missing tasks
Added default Gradle tasks
This commit is contained in:
@@ -8,6 +8,8 @@
|
||||
|
||||
include::introduction.adoc[]
|
||||
|
||||
include::links.adoc[]
|
||||
|
||||
== Documentation
|
||||
|
||||
You can read more about Spring Cloud Contract Verifier by reading the {documentation_url}[docs]
|
||||
|
||||
11
docs/src/main/asciidoc/links.adoc
Normal file
11
docs/src/main/asciidoc/links.adoc
Normal file
@@ -0,0 +1,11 @@
|
||||
== Links
|
||||
|
||||
Here you can find interesting links related to Spring Cloud Contract Verifier:
|
||||
|
||||
- https://github.com/Codearte/accurest[Spring Cloud Contract Verifier Github Repository]
|
||||
- http://codearte.github.io/accurest[Spring Cloud Contract Verifier Documentation]
|
||||
- http://codearte.github.io/accurest/deprecated[Accurest Legacy Documentation]
|
||||
- https://codearte.github.io/accurest/#spring-cloud-contract-stub-runner[Spring Cloud Contract Stub Runner Documentation]
|
||||
- http://codearte.github.io/accurest/#stub-runner-for-messaging[Spring Cloud Contract Stub Runner Messaging Documentation]
|
||||
- https://gitter.im/Codearte/accurest[Spring Cloud Contract Verifier Gitter]
|
||||
- https://github.com/Codearte/accurest-maven-plugin[Spring Cloud Contract Verifier Maven Plugin]
|
||||
@@ -17,4 +17,6 @@ include::messaging.adoc[]
|
||||
|
||||
include::stubrunner.adoc[]
|
||||
|
||||
include::stubrunner_msg.adoc[]
|
||||
include::stubrunner_msg.adoc[]
|
||||
|
||||
include::links.adoc[]
|
||||
@@ -28,7 +28,6 @@ import java.nio.charset.StandardCharsets
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.Paths
|
||||
import java.nio.file.StandardCopyOption
|
||||
/**
|
||||
* Recursively converts contracts into their stub representations
|
||||
*
|
||||
@@ -38,21 +37,26 @@ import java.nio.file.StandardCopyOption
|
||||
@CompileStatic
|
||||
class RecursiveFilesConverter {
|
||||
|
||||
private static final String DEFAULT_CONTRACTS_FOLDER = "contracts"
|
||||
private static final String DEFAULT_MAPPINGS_FOLDER = "mappings"
|
||||
private final SingleFileConverter singleFileConverter
|
||||
private final ContractVerifierConfigProperties properties
|
||||
private final String additionalFolder
|
||||
|
||||
RecursiveFilesConverter(SingleFileConverter singleFileConverter, ContractVerifierConfigProperties properties) {
|
||||
this.properties = properties
|
||||
this.singleFileConverter = singleFileConverter
|
||||
this.additionalFolder = ""
|
||||
}
|
||||
|
||||
RecursiveFilesConverter(SingleFileConverter singleFileConverter, ContractVerifierConfigProperties properties, String additionalFolder) {
|
||||
this.properties = properties
|
||||
this.singleFileConverter = singleFileConverter
|
||||
this.additionalFolder = additionalFolder
|
||||
}
|
||||
|
||||
void processFiles() {
|
||||
ContractFileScanner scanner = new ContractFileScanner(properties.contractsDslDir, properties.excludedFiles as Set, [] as Set)
|
||||
ListMultimap<Path, ContractMetadata> contracts = scanner.findContracts()
|
||||
log.debug("Found the following contracts $contracts")
|
||||
createContractDirInOutputStubsFolder()
|
||||
contracts.asMap().entrySet().each { entry ->
|
||||
entry.value.each { ContractMetadata contract ->
|
||||
File sourceFile = contract.path.toFile()
|
||||
@@ -60,13 +64,11 @@ class RecursiveFilesConverter {
|
||||
if (!singleFileConverter.canHandleFileName(sourceFile.name)) {
|
||||
return
|
||||
}
|
||||
Path targetContractDir = createAndReturnTargetDirectory(sourceFile, DEFAULT_CONTRACTS_FOLDER)
|
||||
Files.copy(sourceFile.toPath(), new File(targetContractDir.toFile(), sourceFile.name).toPath(), StandardCopyOption.REPLACE_EXISTING)
|
||||
String convertedContent = singleFileConverter.convertContent(entry.key.last().toString(), contract)
|
||||
if (!convertedContent) {
|
||||
return
|
||||
}
|
||||
Path absoluteTargetPath = createAndReturnTargetDirectory(sourceFile, DEFAULT_MAPPINGS_FOLDER)
|
||||
Path absoluteTargetPath = createAndReturnTargetDirectory(sourceFile)
|
||||
File newJsonFile = createTargetFileWithProperName(absoluteTargetPath, sourceFile)
|
||||
newJsonFile.setText(convertedContent, StandardCharsets.UTF_8.toString())
|
||||
} catch (Exception e) {
|
||||
@@ -76,17 +78,10 @@ class RecursiveFilesConverter {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean createContractDirInOutputStubsFolder() {
|
||||
return contractDir().mkdirs()
|
||||
}
|
||||
|
||||
private File contractDir() {
|
||||
return new File(properties.stubsOutputDir, DEFAULT_CONTRACTS_FOLDER)
|
||||
}
|
||||
|
||||
private Path createAndReturnTargetDirectory(File sourceFile, String defaultFolder) {
|
||||
private Path createAndReturnTargetDirectory(File sourceFile) {
|
||||
Path relativePath = Paths.get(properties.contractsDslDir.toURI()).relativize(sourceFile.parentFile.toPath())
|
||||
Path absoluteTargetPath = new File(properties.stubsOutputDir, defaultFolder).toPath().resolve(relativePath)
|
||||
File rootFile = additionalFolder ? new File(properties.stubsOutputDir, additionalFolder) : properties.stubsOutputDir
|
||||
Path absoluteTargetPath = rootFile.toPath().resolve(relativePath)
|
||||
Files.createDirectories(absoluteTargetPath)
|
||||
return absoluteTargetPath
|
||||
}
|
||||
|
||||
@@ -30,12 +30,7 @@ import java.nio.file.Paths
|
||||
class RecursiveFilesConverterSpec extends Specification {
|
||||
|
||||
private static
|
||||
final Set<Path> EXPECTED_TARGET_FILES = [
|
||||
Paths.get("contracts/dir1/dsl1.groovy"), Paths.get("contracts/dir1/dsl1b.groovy"),
|
||||
Paths.get("contracts/dir2/dsl2.groovy"), Paths.get("contracts/dslRoot.groovy"),
|
||||
Paths.get("mappings/dslRoot.json"), Paths.get("mappings/dir1/dsl1.json"),
|
||||
Paths.get("mappings/dir1/dsl1b.json"), Paths.get("mappings/dir2/dsl2.json")
|
||||
]
|
||||
final Set<Path> EXPECTED_TARGET_FILES = [Paths.get("dslRoot.json"), Paths.get("dir1/dsl1.json"), Paths.get("dir1/dsl1b.json"), Paths.get("dir2/dsl2.json")]
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder tmpFolder = new TemporaryFolder();
|
||||
@@ -84,8 +79,7 @@ class RecursiveFilesConverterSpec extends Specification {
|
||||
then:
|
||||
Collection<File> createdFiles = FileUtils.listFiles(properties.stubsOutputDir, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE)
|
||||
Set<String> relativizedCreatedFiles = getRelativePathsForFilesInDirectory(createdFiles, properties.stubsOutputDir)
|
||||
[ Paths.get("mappings/dslRoot.json"), Paths.get("mappings/dir2/dsl2.json") ,
|
||||
Paths.get("contracts/dslRoot.groovy"), Paths.get("contracts/dir2/dsl2.groovy")] as Set == relativizedCreatedFiles as Set
|
||||
[Paths.get("dslRoot.json"), Paths.get("dir2/dsl2.json")] as Set == relativizedCreatedFiles as Set
|
||||
and:
|
||||
createdFiles.each { it.text == "converted" }
|
||||
}
|
||||
|
||||
@@ -91,4 +91,9 @@ class ContractVerifierConfigProperties {
|
||||
*/
|
||||
File stubsOutputDir
|
||||
|
||||
/**
|
||||
* Suffix for the generated Stubs Jar task
|
||||
*/
|
||||
String stubsSuffix = 'stubs'
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,8 @@ import org.springframework.cloud.contract.verifier.wiremock.RecursiveFilesConver
|
||||
*/
|
||||
class GenerateWireMockClientStubsFromDslTask extends ConventionTask {
|
||||
|
||||
private static final String DEFAULT_MAPPINGS_FOLDER = 'mappings'
|
||||
|
||||
@InputDirectory
|
||||
File contractsDslDir
|
||||
@OutputDirectory
|
||||
@@ -43,7 +45,8 @@ class GenerateWireMockClientStubsFromDslTask extends ConventionTask {
|
||||
void generate() {
|
||||
logger.info("Spring Cloud Contract Verifier Plugin: Invoking DSL to WireMock client stubs conversion")
|
||||
logger.debug("From '${getContractsDslDir()}' to '${getStubsOutputDir()}'")
|
||||
RecursiveFilesConverter converter = new RecursiveFilesConverter(new DslToWireMockClientConverter(), getConfigProperties())
|
||||
RecursiveFilesConverter converter = new RecursiveFilesConverter(new DslToWireMockClientConverter(),
|
||||
getConfigProperties(), DEFAULT_MAPPINGS_FOLDER)
|
||||
converter.processFiles()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,11 @@ package org.springframework.cloud.contract.verifier.plugin
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties
|
||||
|
||||
/**
|
||||
* Gradle plugin for Spring Cloud Contract Verifier that from the DSL contract can
|
||||
* <ul>
|
||||
@@ -44,6 +47,8 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
|
||||
|
||||
private static final String GENERATE_SERVER_TESTS_TASK_NAME = 'generateContractTests'
|
||||
private static final String DSL_TO_WIREMOCK_CLIENT_TASK_NAME = 'generateWireMockClientStubs'
|
||||
private static final String COPY_CONTRACTS_TASK_NAME = 'copyContracts'
|
||||
private static final String VERIFIER_STUBS_JAR_TASK_NAME = 'verifierStubsJar'
|
||||
|
||||
private static final Class IDEA_PLUGIN_CLASS = org.gradle.plugins.ide.idea.IdeaPlugin
|
||||
private static final String GROUP_NAME = "Verification"
|
||||
@@ -61,6 +66,9 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
|
||||
setConfigurationDefaults(extension)
|
||||
createGenerateTestsTask(extension)
|
||||
createAndConfigureGenerateWireMockClientStubsFromDslTask(extension)
|
||||
Task stubsJar = createAndConfigureStubsJarTasks(extension)
|
||||
createAndConfigureCopyContractsTask(stubsJar, extension)
|
||||
createAndConfigureMavenPublishPlugin(stubsJar, extension)
|
||||
project.dependencies.add("testCompile", "com.github.tomakehurst:wiremock:2.0.10-beta")
|
||||
project.dependencies.add("testCompile", "com.toomuchcoding.jsonassert:jsonassert:0.4.7")
|
||||
project.dependencies.add("testCompile", "org.assertj:assertj-core:2.3.0")
|
||||
@@ -111,4 +119,85 @@ class SpringCloudContractVerifierGradlePlugin implements Plugin<Project> {
|
||||
configProperties = { extension }
|
||||
}
|
||||
}
|
||||
|
||||
private Task createAndConfigureStubsJarTasks(ContractVerifierConfigProperties extension) {
|
||||
Task task = stubsTask()
|
||||
if (task) {
|
||||
project.logger.warn("Stubs jar task was present - won't create one. Remember about adding it to artifacts as an archive!")
|
||||
return task
|
||||
} else {
|
||||
task = project.tasks.create(type: Jar, name: VERIFIER_STUBS_JAR_TASK_NAME,
|
||||
dependsOn: DSL_TO_WIREMOCK_CLIENT_TASK_NAME) {
|
||||
baseName = project.name
|
||||
classifier = extension.stubsSuffix
|
||||
from { extension.stubsOutputDir }
|
||||
}
|
||||
task.description = "Creates the stubs JAR task"
|
||||
task.group = GROUP_NAME
|
||||
|
||||
project.artifacts {
|
||||
archives task
|
||||
}
|
||||
return task
|
||||
}
|
||||
}
|
||||
|
||||
private Task stubsTask() {
|
||||
try {
|
||||
return project.tasks.getByName(VERIFIER_STUBS_JAR_TASK_NAME)
|
||||
} catch (Exception e) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
private Task createAndConfigureCopyContractsTask(Task stubs, ContractVerifierConfigProperties extension) {
|
||||
Task task = project.tasks.create(type: Copy, name: COPY_CONTRACTS_TASK_NAME) {
|
||||
from { extension.contractsDslDir }
|
||||
into { project.file("${extension.stubsOutputDir}/contracts") ?: project.file("${project.buildDir}/stubs/contracts") }
|
||||
}
|
||||
task.description = "Copies contracts to the output folder"
|
||||
task.group = GROUP_NAME
|
||||
stubs.dependsOn task
|
||||
return task
|
||||
}
|
||||
|
||||
private void createAndConfigureMavenPublishPlugin(Task stubsTask, ContractVerifierConfigProperties extension) {
|
||||
if (!classIsOnClasspath("org.gradle.api.publish.maven.plugins.MavenPublishPlugin")) {
|
||||
return
|
||||
}
|
||||
project.logger.debug("Generating default publication")
|
||||
project.afterEvaluate {
|
||||
project.plugins.withType(MavenPublishPlugin) { def publishingPlugin ->
|
||||
def publishingExtension = project.extensions.findByName('publishing')
|
||||
if (!hasPublication(publishingExtension)) {
|
||||
project.logger.debug("Stubs publication is not present - will create one")
|
||||
publishingExtension.publications {
|
||||
stubs(MavenPublication) {
|
||||
artifactId "${project.name}-${extension.stubsSuffix}"
|
||||
artifact stubsTask
|
||||
}
|
||||
}
|
||||
} else {
|
||||
project.logger.warn("Stubs publication was present - won't create a new one. Remember about passing stubs as artifact")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean hasPublication(def publishingExtension) {
|
||||
try {
|
||||
return publishingExtension.publications.getByName('stubs')
|
||||
} catch (Exception e) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
private boolean classIsOnClasspath(String className) {
|
||||
try {
|
||||
Class.forName(className)
|
||||
return true
|
||||
} catch (Exception e) {
|
||||
project.logger.debug("Maven Publish Plugin is not available")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,25 +62,6 @@ wrapper {
|
||||
gradleVersion '2.2.1'
|
||||
}
|
||||
|
||||
task stubsJar(type: Jar, dependsOn: ["generateWireMockClientStubs"]) {
|
||||
baseName = "${project.name}"
|
||||
classifier = "stubs"
|
||||
from stubsOutputDirRoot
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives stubsJar
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
stubs(MavenPublication) {
|
||||
artifactId "${project.name}-stubs"
|
||||
artifact stubsJar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
|
||||
@@ -14,8 +14,6 @@ group = 'org.springframework.cloud.testprojects'
|
||||
ext {
|
||||
contractsDir = file("repository/mappings")
|
||||
stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/")
|
||||
wireMockStubsOutputDir = new File(stubsOutputDirRoot, 'repository/mappings/')
|
||||
contractsOutputDir = new File(stubsOutputDirRoot, 'repository/contracts/')
|
||||
targetFramework = 'Spock'
|
||||
}
|
||||
|
||||
@@ -66,46 +64,15 @@ contractVerifier {
|
||||
targetFramework = 'Spock'
|
||||
contractsDslDir = contractsDir
|
||||
// generatedTestSourcesDir = file("${project.rootDir}/src/test/groovy/")
|
||||
stubsOutputDir = wireMockStubsOutputDir
|
||||
stubsOutputDir = stubsOutputDirRoot
|
||||
}
|
||||
|
||||
//TODO: Put it into the plugin
|
||||
task createWireMockStubsOutputDir << {
|
||||
wireMockStubsOutputDir.mkdirs()
|
||||
}
|
||||
|
||||
generateWireMockClientStubs.dependsOn { createWireMockStubsOutputDir }
|
||||
generateContractTests.dependsOn generateWireMockClientStubs
|
||||
|
||||
wrapper {
|
||||
gradleVersion '2.12'
|
||||
}
|
||||
|
||||
task copyContracts(type: Copy) {
|
||||
from contractsDir
|
||||
include '**/*.groovy'
|
||||
into contractsOutputDir
|
||||
}
|
||||
|
||||
task stubsJar(type: Jar, dependsOn: ["generateWireMockClientStubs", copyContracts]) {
|
||||
baseName = "${project.name}"
|
||||
classifier = "stubs"
|
||||
from stubsOutputDirRoot
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives stubsJar
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
stubs(MavenPublication) {
|
||||
artifactId "${project.name}-stubs"
|
||||
artifact stubsJar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
|
||||
@@ -58,8 +58,6 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
ext {
|
||||
contractsDir = file("mappings")
|
||||
stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/")
|
||||
wireMockStubsOutputDir = file(new File(stubsOutputDirRoot, 'repository/mappings/'))
|
||||
contractsOutputDir = file(new File(stubsOutputDirRoot, 'repository/contracts/'))
|
||||
}
|
||||
|
||||
contractVerifier {
|
||||
@@ -68,7 +66,7 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
baseClassForTests = 'org.springframework.cloud.MvcSpec'
|
||||
contractsDslDir = file("${project.projectDir.absolutePath}/mappings/")
|
||||
generatedTestSourcesDir = file("${project.buildDir}/generated-test-sources/")
|
||||
stubsOutputDir = wireMockStubsOutputDir
|
||||
stubsOutputDir = stubsOutputDirRoot
|
||||
}
|
||||
|
||||
jar {
|
||||
@@ -96,31 +94,6 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
|
||||
clean.dependsOn('cleanup')
|
||||
|
||||
task copyContracts(type: Copy) {
|
||||
from contractsDir
|
||||
include '**/*.groovy'
|
||||
into contractsOutputDir
|
||||
}
|
||||
|
||||
task stubsJar(type: Jar, dependsOn: ["generateWireMockClientStubs", copyContracts]) {
|
||||
baseName = "${project.name}"
|
||||
classifier = "stubs"
|
||||
from stubsOutputDirRoot
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives stubsJar
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
stubs(MavenPublication) {
|
||||
artifactId "${project.name}-stubs"
|
||||
artifact stubsJar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
@@ -137,7 +110,7 @@ configure(project(':loanApplicationService')) {
|
||||
|
||||
task copyCollaboratorStubs(type: Copy) {
|
||||
File fraudBuildDir = project(':fraudDetectionService').buildDir
|
||||
from(new File(fraudBuildDir, "/production/${project(':fraudDetectionService').name}-stubs/repository/"))
|
||||
from(new File(fraudBuildDir, "/production/${project(':fraudDetectionService').name}-stubs/"))
|
||||
into "src/test/resources/"
|
||||
}
|
||||
|
||||
|
||||
@@ -58,8 +58,6 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
ext {
|
||||
contractsDir = file("mappings")
|
||||
stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/")
|
||||
wireMockStubsOutputDir = file(new File(stubsOutputDirRoot, 'repository/mappings/'))
|
||||
contractsOutputDir = file(new File(stubsOutputDirRoot, 'repository/contracts/'))
|
||||
}
|
||||
|
||||
contractVerifier {
|
||||
@@ -68,7 +66,7 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
baseClassForTests = 'org.springframework.cloud.MvcSpec'
|
||||
contractsDslDir = file("${project.projectDir.absolutePath}/mappings/")
|
||||
generatedTestSourcesDir = file("${project.buildDir}/generated-test-sources/")
|
||||
stubsOutputDir = wireMockStubsOutputDir
|
||||
stubsOutputDir = stubsOutputDirRoot
|
||||
}
|
||||
|
||||
jar {
|
||||
@@ -94,31 +92,6 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
|
||||
clean.dependsOn('cleanup')
|
||||
|
||||
task copyContracts(type: Copy) {
|
||||
from contractsDir
|
||||
into contractsOutputDir
|
||||
includeEmptyDirs = true
|
||||
}
|
||||
|
||||
task stubsJar(type: Jar, dependsOn: ["generateWireMockClientStubs", copyContracts]) {
|
||||
baseName = "${project.name}"
|
||||
classifier = "stubs"
|
||||
from stubsOutputDirRoot
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives stubsJar
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
stubs(MavenPublication) {
|
||||
artifactId "${project.name}-stubs"
|
||||
artifact stubsJar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
@@ -134,7 +107,7 @@ configure(project(':loanApplicationService')) {
|
||||
|
||||
task copyCollaboratorStubs(type: Copy) {
|
||||
File fraudBuildDir = project(':fraudDetectionService').buildDir
|
||||
from(new File(fraudBuildDir, "/production/${project(':fraudDetectionService').name}-stubs/repository/"))
|
||||
from(new File(fraudBuildDir, "/production/${project(':fraudDetectionService').name}-stubs/"))
|
||||
into "src/test/resources/"
|
||||
}
|
||||
|
||||
|
||||
@@ -59,31 +59,18 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
ext {
|
||||
contractsDir = file("mappings")
|
||||
stubsOutputDirRoot = file("${project.buildDir}/production/${project.name}-stubs/")
|
||||
wireMockStubsOutputDir = file(new File(stubsOutputDirRoot, 'repository/mappings/'))
|
||||
contractsOutputDir = file(new File(stubsOutputDirRoot, 'repository/contracts/'))
|
||||
}
|
||||
|
||||
task copyContracts(type: Copy) {
|
||||
from contractsDir
|
||||
include '**/*.groovy'
|
||||
into contractsOutputDir
|
||||
}
|
||||
|
||||
task stubsJar(type: Jar, dependsOn: ["generateWireMockClientStubs", copyContracts]) {
|
||||
baseName = "${project.name}"
|
||||
classifier = "stubs"
|
||||
from stubsOutputDirRoot
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives stubsJar
|
||||
}
|
||||
// Automatically added by plugin:
|
||||
// copyContracts - copies contracts to the output folder from which JAR will be created
|
||||
// verifierStubsJar - JAR with a provided stub suffix
|
||||
// the presented publication is also added by the plugin but you can modify it as you wish
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
stubs(MavenPublication) {
|
||||
artifactId "${project.name}-stubs"
|
||||
artifact stubsJar
|
||||
artifact verifierStubsJar
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -97,7 +84,7 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService')
|
||||
baseClassForTests = 'org.springframework.cloud.MvcSpec'
|
||||
contractsDslDir = file("${project.projectDir.absolutePath}/mappings/")
|
||||
generatedTestSourcesDir = file("${project.buildDir}/generated-test-sources/")
|
||||
stubsOutputDir = wireMockStubsOutputDir
|
||||
stubsOutputDir = stubsOutputDirRoot
|
||||
}
|
||||
|
||||
jar {
|
||||
@@ -138,7 +125,7 @@ configure(project(':loanApplicationService')) {
|
||||
|
||||
task copyCollaboratorStubs(type: Copy) {
|
||||
File fraudBuildDir = project(':fraudDetectionService').buildDir
|
||||
from(new File(fraudBuildDir, "/production/${project(':fraudDetectionService').name}-stubs/repository/"))
|
||||
from(new File(fraudBuildDir, "/production/${project(':fraudDetectionService').name}-stubs/"))
|
||||
into "src/test/resources/"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user