{"id":13450160,"url":"https://github.com/pact-foundation/pact-jvm","last_synced_at":"2026-04-21T03:01:52.774Z","repository":{"id":13070197,"uuid":"15750847","full_name":"pact-foundation/pact-jvm","owner":"pact-foundation","description":"JVM version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project.","archived":false,"fork":false,"pushed_at":"2026-04-16T04:28:05.000Z","size":18051,"stargazers_count":1127,"open_issues_count":382,"forks_count":486,"subscribers_count":74,"default_branch":"master","last_synced_at":"2026-04-16T05:43:47.203Z","etag":null,"topics":["consumer-driven-contracts","contract-testing","hacktoberfest","pact","smartbear-supported"],"latest_commit_sha":null,"homepage":"https://docs.pact.io","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pact-foundation.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"pact-foundation","custom":["https://pactflow.io"]}},"created_at":"2014-01-08T23:07:11.000Z","updated_at":"2026-04-15T23:34:36.000Z","dependencies_parsed_at":"2023-02-16T03:32:01.999Z","dependency_job_id":"223125b4-0c3f-45f9-9254-5b22010dd336","html_url":"https://github.com/pact-foundation/pact-jvm","commit_stats":{"total_commits":4316,"total_committers":236,"mean_commits":18.28813559322034,"dds":0.6302131603336423,"last_synced_commit":"287b16c4498fca0679d96b0c30a79198e381d1a3"},"previous_names":["dius/pact-jvm"],"tags_count":374,"template":false,"template_full_name":null,"purl":"pkg:github/pact-foundation/pact-jvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-jvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-jvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-jvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-jvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pact-foundation","download_url":"https://codeload.github.com/pact-foundation/pact-jvm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-jvm/sbom","scorecard":{"id":40219,"data":{"date":"2025-08-04","repo":{"name":"github.com/pact-foundation/pact-jvm","commit":"286861e9784ab75867588a0e5e051278a51ac1a8"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":2.1,"checks":[{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 2/28 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/compatability-suite.yml:1","Warn: no topLevel permission defined: .github/workflows/gradle.yml:1","Warn: no topLevel permission defined: .github/workflows/issue-comment-created.yml:1","Warn: no topLevel permission defined: .github/workflows/smartbear-issue-label-added.yml:1","Warn: no topLevel permission defined: .github/workflows/triage.yml:1","Warn: no topLevel permission defined: .github/workflows/trigger_pact_docs_update.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.event.comment.body ': .github/workflows/issue-comment-created.yml:13","Warn: script injection with untrusted input ' toJSON(github.event.issue.title)': .github/workflows/issue-comment-created.yml:23"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":7,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: provider/gradle/tests_suits/test_provider/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: provider/gradle/tests_suits/v2.14.1/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/compatability-suite.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/compatability-suite.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/gradle.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/gradle.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/gradle.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/gradle.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/gradle.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gradle.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/gradle.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/issue-comment-created.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/issue-comment-created.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/issue-comment-created.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/issue-comment-created.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/issue-comment-created.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/issue-comment-created.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/issue-comment-created.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/issue-comment-created.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/smartbear-issue-label-added.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/smartbear-issue-label-added.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/triage.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/pact-foundation/pact-jvm/triage.yml/master?enable=pin","Warn: containerImage not pinned by hash: pact-jvm-server/Dockerfile:1","Info:   0 out of  19 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T21:19:33.590Z","repository_id":13070197,"created_at":"2025-08-14T21:19:33.590Z","updated_at":"2025-08-14T21:19:33.590Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32074812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T02:38:07.213Z","status":"ssl_error","status_checked_at":"2026-04-21T02:38:06.559Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["consumer-driven-contracts","contract-testing","hacktoberfest","pact","smartbear-supported"],"created_at":"2024-07-31T07:00:31.679Z","updated_at":"2026-04-21T03:01:52.732Z","avatar_url":"https://github.com/pact-foundation.png","language":"Kotlin","funding_links":["https://opencollective.com/pact-foundation","https://pactflow.io"],"categories":["Java","Contract Testing","测试","hacktoberfest"],"sub_categories":["Pact Ecosystem"],"readme":"Pact-JVM\n========\n\n[![Pact-JVM Build](https://github.com/pact-foundation/pact-jvm/workflows/Pact-JVM%20Build/badge.svg)](https://github.com/pact-foundation/pact-jvm/actions?query=workflow%3A%22Pact-JVM+Build%22)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/au.com.dius.pact.core/model/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/au.com.dius.pact.core/model)\n\nJVM implementation of the consumer driven contract library [pact](https://github.com/pact-foundation/pact-specification).\n\nFrom the [Ruby Pact website](https://github.com/pact-foundation/pact-ruby):\n\n\u003e Define a pact between service consumers and providers, enabling \"consumer driven contract\" testing.\n\u003e\n\u003ePact provides an RSpec DSL for service consumers to define the HTTP requests they will make to a service provider and the HTTP responses they expect back. \n\u003eThese expectations are used in the consumers specs to provide a mock service provider. The interactions are recorded, and played back in the service provider \n\u003especs to ensure the service provider actually does provide the response the consumer expects.\n\u003e\n\u003eThis allows testing of both sides of an integration point using fast unit tests.\n\u003e\n\u003eThis gem is inspired by the concept of \"Consumer driven contracts\". See https://martinfowler.com/articles/consumerDrivenContracts.html for more information.\n\n\nRead [Getting started with Pact](https://dius.com.au/2016/02/03/pact-101-getting-started-with-pact-and-consumer-driven-contract-testing/) for more information on\nhow to get going.\n\n\n## Contact\n\n* Twitter: [@pact_up](https://twitter.com/pact_up)\n* Slack: [Join the chat at https://slack.pact.io/](https://slack.pact.io/)\n* Stack Overflow: https://stackoverflow.com/questions/tagged/pact\n\n## Links\n\n* For examples of using pact-jvm with spring boot, have a look at https://github.com/Mikuu/Pact-JVM-Example and https://github.com/mstine/microservices-pact\n\n## Tutorial (60 minutes)\n\nLearn everything in Pact in 60 minutes: https://github.com/pact-foundation/pact-workshop-jvm-spring.\n\nThe workshop takes you through all of the key concepts of consumer and provider testing using a Spring boot application.\n\n## Documentation\n\nAdditional documentation can be found at [docs.pact.io](http://docs.pact.io), in the [Pact Wiki](https://github.com/pact-foundation/pact-ruby/wiki),\nand in the [Pact-JVM wiki](https://github.com/pact-foundation/pact-jvm/wiki). [Stack Overflow](https://stackoverflow.com/questions/tagged/pact) is also a good source of help, as is the [Slack workspace](https://slack.pact.io).\n\n## Supported JDK and specification versions:\n\n| Branch                                                                            | Specification | JDK                   | Kotlin Version | Latest Version | Notes |\n|-----------------------------------------------------------------------------------|---------------|-----------------------|----------------|----------------|-------|\n| [4.7.x](https://github.com/pact-foundation/pact-jvm/blob/v4.7.x/README.md) master        | V4 + plugins  | 17+ (tested up to 23) | 2.3.10         | 4.7.0-beta.5   |       |\n| [4.6.x](https://github.com/pact-foundation/pact-jvm/blob/v4.6.x/README.md) | V4 + plugins  | 17+ (tested up to 18) | 1.8.22         | 4.6.20         |       |\n| [4.5.x](https://github.com/pact-foundation/pact-jvm/blob/v4.5.x/README.md)        | V4 + plugins  | 11+/17+(1)            | 1.7.20         | 4.5.13         |       |\n| [4.1.x](https://github.com/pact-foundation/pact-jvm/blob/v4.1.x/README.md)        | V3            | 8-12                  | 1.3.72         | 4.1.43         |       |\n\n**Notes:**\n* **1:** Spring6 support library requires JDK 17. The rest of Pact-JVM 4.5.x libs require 11+.\n\n### Previous versions (not actively supported)\n\n| Branch                                                                    | Specification | JDK       | Kotlin Version | Scala Versions | Latest Version |\n|---------------------------------------------------------------------------|---------------|-----------|----------------|----------------|----------------|\n| [4.4.x](https://github.com/pact-foundation/pact-jvm/blob/v4.4.x/README.md)           | V4 + plugins  | 11+       | 1.6.21         | N/A            | 4.4.9          |\n| [4.3.x](https://github.com/pact-foundation/pact-jvm/blob/v4.3.x/README.md)           | V4            | 11+       | 1.6.21         | N/A            | 4.3.19         |\n| [4.2.x](https://github.com/pact-foundation/pact-jvm/blob/v4.2.x/README.md)           | V4 (1)        | 11-15 (2) | 1.4.32         | N/A            | 4.2.21         |\n| [4.0.x](https://github.com/pact-foundation/pact-jvm/blob/v4.x/README.md)             | V3            | 8-12      | 1.3.71         | N/A            | 4.0.10         |\n| [3.6.x](https://github.com/pact-foundation/pact-jvm/blob/v3.6.x/README.md)           | V3            | 8         | 1.3.71         | 2.12           | 3.6.15         |\n| [3.5.x](https://github.com/pact-foundation/pact-jvm/blob/v3.5.x/README.md)           | V3            | 8         | 1.1.4-2        | 2.12, 2.11     | 3.5.25         |\n| [3.5.x-jre7](https://github.com/pact-foundation/pact-jvm/blob/v3.5.x-jre7/README.md) | V3            | 7         | 1.1.4-2        | 2.11           | 3.5.7-jre7.0   |\n| [2.4.x](https://github.com/pact-foundation/pact-jvm/blob/v2.x/README.md)             | V2            | 6         | N/A            | 2.10, 2.11     | 2.4.20         |\n\n**Notes:**\n* **1:** V4 specification support is only partially implemented with 4.2.x\n* **2:** v4.2.x may run on JDK 16, but the build for it does not.\n\n**NOTE:** The JARs produced by this project have changed with 4.1.x to better align with Java 9 JPMS. The artefacts are now:\n\n```\nau.com.dius.pact:consumer\nau.com.dius.pact.consumer:groovy\nau.com.dius.pact.consumer:junit\nau.com.dius.pact.consumer:junit5\nau.com.dius.pact.consumer:java8\nau.com.dius.pact.consumer:specs2_2.13\nau.com.dius.pact:pact-jvm-server\nau.com.dius.pact:provider\nau.com.dius.pact.provider:scalatest_2.13\nau.com.dius.pact.provider:spring\nau.com.dius.pact.provider:maven\nau.com.dius.pact:provider\nau.com.dius.pact.provider:junit\nau.com.dius.pact.provider:junit5\nau.com.dius.pact.provider:scalasupport_2.13\nau.com.dius.pact.provider:lein\nau.com.dius.pact.provider:gradle\nau.com.dius.pact.provider:specs2_2.13\nau.com.dius.pact.provider:junit5spring\nau.com.dius.pact.core:support\nau.com.dius.pact.core:model\nau.com.dius.pact.core:matchers\nau.com.dius.pact.core:pactbroker\n```\n\n## Service Consumers\n\nPact-JVM has a number of ways you can write your service consumer tests.\n\n### I Use Scala\n\nYou want to look at: [pact4s](https://github.com/jbwheatley/pact4s).\n\n### I Use Java\n\nYou want to look at: [junit](consumer/junit) for JUnit 4 tests and\n[junit5](consumer/junit5) for JUnit 5 tests. Also, if you are using Java 11 or above, there is [an\nupdated DSL for consumer tests](/consumer).\n\n**NOTE:** If you are using Java 8, there is no separate Java 8 support library anymore, see the above library.\n\n\n### I Use Groovy or Grails\n\nYou want to look at: [groovy](consumer/groovy) or [junit](consumer/junit) or [spock](consumer/spock)\n\n### (Use Clojure I)\n\nClojure can call out to Java, so have a look at [junit](consumer/junit). For an example\nlook at [example_clojure_consumer_pact_test.clj](https://github.com/pact-foundation/pact-jvm/blob/master/consumer/junit/src/test/clojure/au/com/dius/pact/consumer/junit/example_clojure_consumer_pact_test.clj).\n\n### I Use some other jvm language or test framework\n\nYou want to look at: [Consumer](consumer)\n\n### My Consumer interacts with a Message Queue\n\nAs part of the V3 pact specification, we have defined a new pact file for interactions with message queues. For an\n  implementation of a Groovy consumer test with a message pact, have a look at [PactMessageBuilderSpec.groovy](https://github.com/pact-foundation/pact-jvm/blob/master/consumer/groovy/src/test/groovy/au/com/dius/pact/consumer/groovy/messaging/PactMessageBuilderSpec.groovy).\n\n## Service Providers\n\nOnce you have run your consumer tests, you will have generated some Pact files. You can then verify your service providers\nwith these files.\n\n### I am writing a provider and want to ...\n\n#### verify pacts with SBT\n\nYou want to look at: [pact4s](https://github.com/jbwheatley/pact4s) or [scala-pact](https://github.com/ITV/scala-pact)\n\n#### verify pacts with Gradle\n\nYou want to look at: [pact gradle plugin](provider/gradle)\n\n#### verify pacts with Maven\n\nYou want to look at: [pact maven plugin](provider/maven)\n\n#### verify pacts with JUnit tests\n\nYou want to look at: [junit provider support](provider/junit) for JUnit 4 tests and \n [junit5](provider/junit5) for JUnit 5 tests\n\n#### verify pacts with Leiningen\n\nYou want to look at: [pact leiningen plugin](provider/lein)\n\n#### verify pacts with a Spring MVC project\n\nHave a look at [spring](provider/spring) or [Spring MVC Pact Test Runner](https://github.com/realestate-com-au/pact-jvm-provider-spring-mvc) (Not maintained).\n\n#### verify pacts with a Quarkus project\n\nHave a look at the Quarkus Pact [provider extension](https://quarkus.io/extensions/io.quarkiverse.pact/quarkus-pact-provider/)\n\n#### I want to verify pacts but don't want to use sbt or gradle or leiningen\n\nYou want to look at: [provider](provider)\n\n#### verify interactions with a message queue\n\nAs part of the V3 pact specification, we have defined a new pact file for interactions with message queues. The Gradle\npact plugin supports a mechanism where you can verify V3 message pacts, have a look at [pact gradle plugin](provider/gradle#verifying-a-message-provider).\nThe JUnit pact library also supports verification of V3 message pacts, have a look at [junit](provider/junit#verifying-a-message-provider).\n\n### I Use Ruby or Go or something else\nThe pact-jvm libraries are pure jvm technologies and do not have any native dependencies.\n\nHowever, if you have a ruby provider, the json produced by this library is compatible with the ruby pact library.\nYou'll want to look at: [Ruby Pact](https://github.com/pact-foundation/pact-ruby).\n\nFor .Net, there is [Pact-net](https://github.com/pact-foundation/pact-net).\n\nFor JS, there is [Pact-JS](https://github.com/pact-foundation/pact-js).\n\nFor Go, there is [Pact-go](https://github.com/pact-foundation/pact-go).\n\nFor Rust, there is [Pact-Rust](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_consumer).\n\nHave a look at [implementations in other languages](https://github.com/realestate-com-au/pact/wiki#implementations-in-other-languages).\n\n### I Use something completely different\n\nThere's a limit to how much we can help, however check out [pact-jvm-server](pact-jvm-server)\n\n## How do I transport my pacts from consumers to providers?\n\nYou want to look at:\n[Pact Broker](https://github.com/pact-foundation/pact_broker)\n\nWhich is a project that aims at providing tooling to coordinate pact generation and delivery between projects.\n\n## I want to contribute\n\n[Documentation for contributors is here](https://github.com/pact-foundation/pact-jvm/blob/master/CONTRIBUTING.md).\n\n# Test Analytics\n\nWe are tracking anonymous analytics to gather important usage statistics like JVM version\nand operating system. To disable tracking, set the 'pact_do_not_track' system property or environment\nvariable to 'true'.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpact-foundation%2Fpact-jvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpact-foundation%2Fpact-jvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpact-foundation%2Fpact-jvm/lists"}