[[contract-java]] == Contract DSL in Java include::partial$_attributes.adoc[] To write a contract definition in Java, you need to create a class that implements either the `Supplier` interface (for a single contract) or `Supplier>` (for multiple contracts). You can also write the contract definitions under `src/test/java` (for example, `src/test/java/contracts`) so that you do not have to modify the classpath of your project. In this case, you have to provide a new location of contract definitions to your Spring Cloud Contract plugin. The following example (in both Maven and Gradle) has the contract definitions under `src/test/java`: ==== [source,xml,indent=0,subs="verbatim",role="primary"] .Maven ---- org.springframework.cloud spring-cloud-contract-maven-plugin ${spring-cloud-contract.version} true src/test/java/contracts ---- [source,groovy,indent=0,subs="verbatim",role="secondary"] .Gradle ---- contracts { contractsDslDir = new File(project.rootDir, "src/test/java/contracts") } ---- ====