Files
spring-cloud-contract/spring-cloud-contract-maven-plugin/configs.html
2019-12-11 00:29:10 +00:00

367 lines
17 KiB
HTML

<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.9.1 at 2019-12-11
| 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="20191211" />
<meta http-equiv="Content-Language" content="en" />
<title>Spring Cloud Contract Maven Plugin &#x2013; </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: 2019-12-11
<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 2.2.1.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&#8217;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">&lt;plugin&gt;</span>
<span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.springframework.cloud<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
<span style="color:#070;font-weight:bold">&lt;baseClassForTests&gt;</span>com.example.FooBase<span style="color:#070;font-weight:bold">&lt;/baseClassForTests&gt;</span>
<span style="color:#070;font-weight:bold">&lt;baseClassMappings&gt;</span>
<span style="color:#070;font-weight:bold">&lt;baseClassMapping&gt;</span>
<span style="color:#070;font-weight:bold">&lt;contractPackageRegex&gt;</span>.*com.*<span style="color:#070;font-weight:bold">&lt;/contractPackageRegex&gt;</span>
<span style="color:#070;font-weight:bold">&lt;baseClassFQN&gt;</span>com.example.TestBase<span style="color:#070;font-weight:bold">&lt;/baseClassFQN&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/baseClassMapping&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/baseClassMappings&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/plugin&gt;</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&#8217;s a contract under /contracts/hello/V1/Contract.groovy` then
we&#8217;ll search for a <code>HelloV1Base</code> base class. We&#8217;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">&lt;plugin&gt;</span>
<span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.springframework.cloud<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
<span style="color:#070;font-weight:bold">&lt;packageWithBaseClasses&gt;</span>hello<span style="color:#070;font-weight:bold">&lt;/packageWithBaseClasses&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/plugin&gt;</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">&lt;plugin&gt;</span>
<span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>org.springframework.cloud<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>spring-cloud-contract-maven-plugin<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;configuration&gt;</span>
<span style="color:#070;font-weight:bold">&lt;contractsMode&gt;</span>REMOTE<span style="color:#070;font-weight:bold">&lt;/contractsMode&gt;</span>
<span style="color:#070;font-weight:bold">&lt;contractsRepositoryUrl&gt;</span>
https://link/to/your/nexus/or/artifactory/or/sth
<span style="color:#070;font-weight:bold">&lt;/contractsRepositoryUrl&gt;</span>
<span style="color:#070;font-weight:bold">&lt;contractDependency&gt;</span>
<span style="color:#070;font-weight:bold">&lt;groupId&gt;</span>com.example.standalone<span style="color:#070;font-weight:bold">&lt;/groupId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;artifactId&gt;</span>contracts<span style="color:#070;font-weight:bold">&lt;/artifactId&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/contractDependency&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/configuration&gt;</span>
<span style="color:#070;font-weight:bold">&lt;/plugin&gt;</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&#8217;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 &copy; 2016&#x2013;2019
<a href="https://spring.io/">Spring</a>.
All rights reserved.
</p>
</div>
</div>
</footer>
</body>
</html>