# Spring Cloud Contract Maven Plugin –

## Spring Cloud Contract Maven Plugin

## Groovy Project with Spock Specifications

Sample minimal configuration for Groovy Project with Spock Specification

### Test dependencies for generated contract verification tests

            <dependency>
                <groupId>org.spockframework</groupId>
                <artifactId>spock-core</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-contract-verifier</artifactId>
                <version>${it-plugin.version}</version>
                <scope>test</scope>
            </dependency>

### Project configuration for Spring Cloud Contract Verifier, Groovy, Spock specifications and stub publishing

                <plugin>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-contract-maven-plugin</artifactId>
                    <version>${spring-cloud-verifier-plugin.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <baseClassForTests>hello.BaseAccurest</baseClassForTests>
                        <testFramework>SPOCK</testFramework>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.gmavenplus</groupId>
                    <artifactId>gmavenplus-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <testSources>
                            <testSource>
                                <directory>${project.basedir}/src/test/groovy</directory>
                                <includes>
                                    <include>**/*.groovy</include>
                                </includes>
                            </testSource>
                            <testSource>
                                <directory>${project.build.directory}/generated-test-sources/contracts</directory>
                                <includes>
                                    <include>**/*.groovy</include>
                                </includes>
                            </testSource>
                        </testSources>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.20</version>
                    <configuration>
                        <includes>
                            <include>**/*Spec.java</include>
                        </includes>
                    </configuration>
                </plugin>

### Base Specification class

    /**
     *
     *  Copyright 2013-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.
     *  You may obtain a copy of the License at
     *
     *       http://www.apache.org/licenses/LICENSE-2.0
     *
     *  Unless required by applicable law or agreed to in writing, software
     *  distributed under the License is distributed on an "AS IS" BASIS,
     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     *  See the License for the specific language governing permissions and
     *  limitations under the License.
     */
    package hello

    import io.restassured.module.mockmvc.RestAssuredMockMvc
    import spock.lang.Specification

    public class BaseAccurest extends Specification {

        def setup() {
            RestAssuredMockMvc.standaloneSetup(new GreetingController())
        }

    }

### Project source code

https://github.com/spring-cloud/spring-cloud-contract/tree/1.2.x/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy