367 lines
17 KiB
HTML
367 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
| Generated by Apache Maven Doxia Site Renderer 1.9.1 at 2020-05-19
|
|
| Rendered using Apache Maven Fluido Skin 1.5
|
|
-->
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="Date-Revision-yyyymmdd" content="20200519" />
|
|
<meta http-equiv="Content-Language" content="en" />
|
|
<title>Spring Cloud Contract Maven Plugin – </title>
|
|
<link rel="stylesheet" href="./css/apache-maven-fluido-1.5.min.css" />
|
|
<link rel="stylesheet" href="./css/site.css" />
|
|
<link rel="stylesheet" href="./css/print.css" media="print" />
|
|
|
|
|
|
<script type="text/javascript" src="./js/apache-maven-fluido-1.5.min.js"></script>
|
|
|
|
</head>
|
|
<body class="topBarEnabled">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/spring-cloud/spring-cloud-contract">
|
|
<img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
|
|
src="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"
|
|
alt="Fork me on GitHub">
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="topbar" class="navbar navbar-fixed-top ">
|
|
<div class="navbar-inner">
|
|
<div class="container-fluid">
|
|
<a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</a>
|
|
|
|
<ul class="nav">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
|
|
<li> <a href="index.html" title="Introduction">Introduction</a>
|
|
</li>
|
|
|
|
<li> <a href="usage.html" title="Usage">Usage</a>
|
|
</li>
|
|
|
|
<li> <a href="plugin-info.html" title="Goals">Goals</a>
|
|
</li>
|
|
|
|
<li> <a href="junit.html" title="JUnit Configuration">JUnit Configuration</a>
|
|
</li>
|
|
|
|
<li> <a href="spock.html" title="Spock Configuration">Spock Configuration</a>
|
|
</li>
|
|
|
|
<li> <a href="complex.html" title="Complex Configuration">Complex Configuration</a>
|
|
</li>
|
|
|
|
<li> <a href="configs.html" title="Configuration snippets">Configuration snippets</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Related Projects <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
|
|
<li> <a href="https://github.com/spring-cloud/spring-cloud-contract" title="Spring Cloud Contract">Spring Cloud Contract</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
|
|
<li class="dropdown-submenu">
|
|
<a href="project-info.html" title="Project Information">Project Information</a>
|
|
<ul class="dropdown-menu">
|
|
<li> <a href="ci-management.html" title="CI Management">CI Management</a>
|
|
</li>
|
|
<li> <a href="index.html" title="About">About</a>
|
|
</li>
|
|
<li> <a href="issue-management.html" title="Issue Management">Issue Management</a>
|
|
</li>
|
|
<li> <a href="licenses.html" title="Licenses">Licenses</a>
|
|
</li>
|
|
<li> <a href="plugin-management.html" title="Plugin Management">Plugin Management</a>
|
|
</li>
|
|
<li> <a href="plugins.html" title="Plugins">Plugins</a>
|
|
</li>
|
|
<li> <a href="team.html" title="Team">Team</a>
|
|
</li>
|
|
<li> <a href="scm.html" title="Source Code Management">Source Code Management</a>
|
|
</li>
|
|
<li> <a href="summary.html" title="Summary">Summary</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown-submenu">
|
|
<a href="project-reports.html" title="Project Reports">Project Reports</a>
|
|
<ul class="dropdown-menu">
|
|
<li> <a href="apidocs/index.html" title="Javadoc">Javadoc</a>
|
|
</li>
|
|
<li> <a href="checkstyle.html" title="Checkstyle">Checkstyle</a>
|
|
</li>
|
|
<li> <a href="plugin-info.html" title="Plugin Documentation">Plugin Documentation</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container-fluid">
|
|
<div id="banner">
|
|
<div class="pull-left">
|
|
<div id="bannerLeft">
|
|
<h2>Spring Cloud Contract Maven Plugin</h2>
|
|
</div>
|
|
</div>
|
|
<div class="pull-right"> <div id="bannerRight">
|
|
<img src="" />
|
|
</div>
|
|
</div>
|
|
<div class="clear"><hr/></div>
|
|
</div>
|
|
|
|
<div id="breadcrumbs">
|
|
<ul class="breadcrumb">
|
|
|
|
<li id="publishDate">Last Published: 2020-05-19
|
|
<span class="divider">|</span>
|
|
</li>
|
|
<li id="projectVersion">Version: 2.2.3.BUILD-SNAPSHOT
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div class="row-fluid">
|
|
<div id="leftColumn" class="span2">
|
|
<div class="well sidebar-nav">
|
|
|
|
<ul class="nav nav-list">
|
|
<li class="nav-header">Overview</li>
|
|
|
|
<li>
|
|
|
|
<a href="index.html" title="Introduction">
|
|
<span class="none"></span>
|
|
Introduction</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="usage.html" title="Usage">
|
|
<span class="none"></span>
|
|
Usage</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="plugin-info.html" title="Goals">
|
|
<span class="none"></span>
|
|
Goals</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="junit.html" title="JUnit Configuration">
|
|
<span class="none"></span>
|
|
JUnit Configuration</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="spock.html" title="Spock Configuration">
|
|
<span class="none"></span>
|
|
Spock Configuration</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="complex.html" title="Complex Configuration">
|
|
<span class="none"></span>
|
|
Complex Configuration</a>
|
|
</li>
|
|
|
|
<li class="active">
|
|
|
|
<a href="#"><span class="none"></span>Configuration snippets</a>
|
|
</li>
|
|
<li class="nav-header">Related Projects</li>
|
|
|
|
<li>
|
|
|
|
<a href="https://github.com/spring-cloud/spring-cloud-contract" class="externalLink" title="Spring Cloud Contract">
|
|
<span class="none"></span>
|
|
Spring Cloud Contract</a>
|
|
</li>
|
|
<li class="nav-header">Project Documentation</li>
|
|
|
|
<li>
|
|
|
|
<a href="project-info.html" title="Project Information">
|
|
<span class="icon-chevron-right"></span>
|
|
Project Information</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="project-reports.html" title="Project Reports">
|
|
<span class="icon-chevron-right"></span>
|
|
Project Reports</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<hr />
|
|
|
|
<div id="poweredBy">
|
|
<div class="clear"></div>
|
|
<div class="clear"></div>
|
|
<div class="clear"></div>
|
|
<div class="clear"></div>
|
|
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
|
|
<img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="bodyColumn" class="span10" >
|
|
|
|
<div class="sect1">
|
|
<h2 id="configuration_snippets">Configuration snippets</h2>
|
|
<div class="sectionbody">
|
|
<div class="paragraph">
|
|
<p>Here you’ll be able to see different Spring Cloud Contract Maven plugin configuration</p>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="base_class_from_mappings">Base class from mappings</h3>
|
|
<div class="paragraph">
|
|
<p>Define regular expression mappings to map a contract to its base class.</p>
|
|
</div>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="CodeRay highlight"><code data-lang="xml"> <span style="color:#070;font-weight:bold"><plugin></span>
|
|
<span style="color:#070;font-weight:bold"><groupId></span>org.springframework.cloud<span style="color:#070;font-weight:bold"></groupId></span>
|
|
<span style="color:#070;font-weight:bold"><artifactId></span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold"></artifactId></span>
|
|
<span style="color:#070;font-weight:bold"><configuration></span>
|
|
<span style="color:#070;font-weight:bold"><baseClassForTests></span>com.example.FooBase<span style="color:#070;font-weight:bold"></baseClassForTests></span>
|
|
<span style="color:#070;font-weight:bold"><baseClassMappings></span>
|
|
<span style="color:#070;font-weight:bold"><baseClassMapping></span>
|
|
<span style="color:#070;font-weight:bold"><contractPackageRegex></span>.*com.*<span style="color:#070;font-weight:bold"></contractPackageRegex></span>
|
|
<span style="color:#070;font-weight:bold"><baseClassFQN></span>com.example.TestBase<span style="color:#070;font-weight:bold"></baseClassFQN></span>
|
|
<span style="color:#070;font-weight:bold"></baseClassMapping></span>
|
|
<span style="color:#070;font-weight:bold"></baseClassMappings></span>
|
|
<span style="color:#070;font-weight:bold"></configuration></span>
|
|
<span style="color:#070;font-weight:bold"></plugin></span></code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="convention_based_mappings">Convention based mappings</h3>
|
|
<div class="paragraph">
|
|
<p>Define a package in which base classes are placed. In this case we define
|
|
a package called <code>hello</code>. If there’s a contract under /contracts/hello/V1/Contract.groovy` then
|
|
we’ll search for a <code>HelloV1Base</code> base class. We’re taking two last folders
|
|
from the path and combine them into a class name.</p>
|
|
</div>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="CodeRay highlight"><code data-lang="xml"> <span style="color:#070;font-weight:bold"><plugin></span>
|
|
<span style="color:#070;font-weight:bold"><groupId></span>org.springframework.cloud<span style="color:#070;font-weight:bold"></groupId></span>
|
|
<span style="color:#070;font-weight:bold"><artifactId></span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold"></artifactId></span>
|
|
<span style="color:#070;font-weight:bold"><configuration></span>
|
|
<span style="color:#070;font-weight:bold"><packageWithBaseClasses></span>hello<span style="color:#070;font-weight:bold"></packageWithBaseClasses></span>
|
|
<span style="color:#070;font-weight:bold"></configuration></span>
|
|
<span style="color:#070;font-weight:bold"></plugin></span></code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="remote_contracts">Remote contracts</h3>
|
|
<div class="paragraph">
|
|
<p>Here you can see a setup where we point to a repository where the JAR with the
|
|
contracts got deployed.</p>
|
|
</div>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="CodeRay highlight"><code data-lang="xml"> <span style="color:#070;font-weight:bold"><plugin></span>
|
|
<span style="color:#070;font-weight:bold"><groupId></span>org.springframework.cloud<span style="color:#070;font-weight:bold"></groupId></span>
|
|
<span style="color:#070;font-weight:bold"><artifactId></span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold"></artifactId></span>
|
|
<span style="color:#070;font-weight:bold"><configuration></span>
|
|
<span style="color:#070;font-weight:bold"><contractsMode></span>REMOTE<span style="color:#070;font-weight:bold"></contractsMode></span>
|
|
<span style="color:#070;font-weight:bold"><contractsRepositoryUrl></span>
|
|
https://link/to/your/nexus/or/artifactory/or/sth
|
|
<span style="color:#070;font-weight:bold"></contractsRepositoryUrl></span>
|
|
<span style="color:#070;font-weight:bold"><contractDependency></span>
|
|
<span style="color:#070;font-weight:bold"><groupId></span>com.example.standalone<span style="color:#070;font-weight:bold"></groupId></span>
|
|
<span style="color:#070;font-weight:bold"><artifactId></span>contracts<span style="color:#070;font-weight:bold"></artifactId></span>
|
|
<span style="color:#070;font-weight:bold"></contractDependency></span>
|
|
<span style="color:#070;font-weight:bold"></configuration></span>
|
|
<span style="color:#070;font-weight:bold"></plugin></span></code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sect2">
|
|
<h3 id="setting_up_repo_with_common_contracts">Setting up repo with common contracts</h3>
|
|
<div class="paragraph">
|
|
<p>A setup of a repo that contains all common contracts. It can exclude the target / build
|
|
folder that gets created when you’re installing stubs locally as a consumer.</p>
|
|
</div>
|
|
<div class="listingblock">
|
|
<div class="content">
|
|
<pre class="CodeRay highlight"><code data-lang="xml"></code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<footer>
|
|
<div class="container-fluid">
|
|
<div class="row-fluid">
|
|
<p >Copyright © 2016–2020
|
|
<a href="https://spring.io/">Spring</a>.
|
|
All rights reserved.
|
|
</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|