blob: 65ca484cba6984d275d783855f9c3f7da2223736 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-09-04 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Apache Rat™ Plugin for Apache Maven &#x2013; Custom License Matchers</title>
<style type="text/css" media="all">
@import url("../css/maven-base.css");
@import url("../css/maven-theme.css");
@import url("../css/site.css");
</style>
<link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
<meta name="Date-Revision-yyyymmdd" content="20160904" />
<meta http-equiv="Content-Language" content="en" />
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Mate+SC" type="text/css"/>
</head>
<body class="composite">
<div id="banner">
<a href="https://www.apache.org/" id="bannerLeft">
<img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" title="The Apache Software Foundation" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2016-09-04</span>
&nbsp;| <span id="projectVersion">Version: 0.13-SNAPSHOT</span>
| <a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a>
&gt;
<a href="https://creadur.apache.org/" class="externalLink" title="Creadur">Creadur</a>
&gt;
<a href="https://creadur.apache.org/rat/" class="externalLink" title="Rat">Rat</a>
&gt;
<a href="../" title="Apache Rat™ Plugin for Apache Maven">Apache Rat™ Plugin for Apache Maven</a>
&gt;
Custom License Matchers
</div>
<div class="xright">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>Parent Project</h5>
<ul>
<li class="none">
<a href="../../index.html" title="Apache Creadur Rat">Apache Creadur Rat</a>
</li>
</ul>
<h5>Overview</h5>
<ul>
<li class="none">
<a href="../index.html" title="Introduction">Introduction</a>
</li>
<li class="none">
<a href="../plugin-info.html" title="Goals">Goals</a>
</li>
<li class="none">
<a href="../usage.html" title="Usage">Usage</a>
</li>
<li class="none">
<a href="../faq.html" title="FAQ">FAQ</a>
</li>
</ul>
<h5>Examples</h5>
<ul>
<li class="none">
<a href="../examples/basic.html" title="Basic use">Basic use</a>
</li>
<li class="none">
<a href="../examples/verify.html" title="Running the plugin automatically">Running the plugin automatically</a>
</li>
<li class="none">
<a href="../examples/site.html" title="Adding a report to the site">Adding a report to the site</a>
</li>
<li class="none">
<strong>Custom license</strong>
</li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="collapsed">
<a href="../project-info.html" title="Project Information">Project Information</a>
</li>
<li class="collapsed">
<a href="../project-reports.html" title="Project Reports">Project Reports</a>
</li>
</ul>
<h5>Apache Rat™</h5>
<ul>
<li class="none">
<a href="../../index.html" title="Introducing Rat">Introducing Rat</a>
</li>
<li class="none">
<a href="../../apidocs/index.html" title="Javadocs">Javadocs</a>
</li>
<li class="none">
<a href="../../download_rat.cgi" title="Downloads">Downloads</a>
</li>
<li class="none">
<a href="../../RELEASE_NOTES.txt" title="Changes">Changes</a>
</li>
</ul>
<h5>Running Rat</h5>
<ul>
<li class="none">
<a href="../../apache-rat/index.html" title="From The Command Line">From The Command Line</a>
</li>
<li class="none">
<a href="../../apache-rat-tasks/index.html" title="With Ant">With Ant</a>
</li>
<li class="none">
<a href="../../apache-rat-plugin/index.html" title="With Maven">With Maven</a>
</li>
</ul>
<h5>Apache Creadur™</h5>
<ul>
<li class="none">
<a href="https://creadur.apache.org" class="externalLink" title="Creadur Project Home">Creadur Project Home</a>
</li>
<li class="none">
<a href="https://creadur.apache.org/tentacles" class="externalLink" title="Apache Tentacles">Apache Tentacles</a>
</li>
<li class="none">
<a href="https://creadur.apache.org/whisker" class="externalLink" title="Apache Whisker">Apache Whisker</a>
</li>
<li class="none">
<a href="https://www.apache.org/security/" class="externalLink" title="Security">Security</a>
</li>
<li class="none">
<a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a>
</li>
<li class="none">
<a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a>
</li>
<li class="none">
<a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a>
</li>
</ul>
<h5>The Apache Software Foundation</h5>
<ul>
<li class="none">
<a href="https://www.apache.org/foundation" class="externalLink" title="About the Foundation">About the Foundation</a>
</li>
<li class="none">
<a href="https://projects.apache.org" class="externalLink" title="The projects">The projects</a>
</li>
<li class="none">
<a href="https://people.apache.org" class="externalLink" title="The people">The people</a>
</li>
<li class="none">
<a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work">How we work</a>
</li>
<li class="none">
<a href="https://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history">Our history</a>
</li>
<li class="none">
<a href="https://blogs.apache.org/foundation/" class="externalLink" title="News">News</a>
</li>
</ul>
<h5>Contribute</h5>
<ul>
<li class="none">
<a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a>
</li>
</ul>
<h5>Committer Info</h5>
<ul>
<li class="none">
<a href="https://www.apache.org/dev/committers.html" class="externalLink" title="ASF Committers' FAQ">ASF Committers' FAQ</a>
</li>
<li class="none">
<a href="https://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide">New Committers Guide</a>
</li>
<li class="none">
<a href="../../site-publish.html" title="Howto publish this site">Howto publish this site</a>
</li>
<li class="none">
<a href="https://planet.apache.org/committers/" class="externalLink" title="Plant Apache">Plant Apache</a>
</li>
<li class="none">
<a href="https://community.apache.org/" class="externalLink" title="Community">Community</a>
</li>
<li class="none">
<a href="https://www.apache.org/legal/" class="externalLink" title="Legal">Legal</a>
</li>
<li class="none">
<a href="https://www.apache.org/foundation/marks/" class="externalLink" title="Branding">Branding</a>
</li>
<li class="none">
<a href="https://www.apache.org/press/" class="externalLink" title="Media Relations">Media Relations</a>
</li>
</ul>
<a href="https://maven.apache.org/" title="Maven" class="poweredBy">
<img class="poweredBy" alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png" />
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<!-- Licensed to the Apache Software Foundation (ASF) under one or more --><!-- contributor license agreements. See the NOTICE file distributed with --><!-- this work for additional information regarding copyright ownership. --><!-- The ASF licenses this file to You 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. --><div class="section">
<h2><a name="Custom_License_Matchers"></a>Custom License Matchers</h2>
<p>Rat comes with a set of predefined license matchers, that can be used some typical licenses. However, they will not always be sufficient. In such cases, you may use a custom license matcher.</p>
<p>A custom license matcher is an implementation of <tt>org.apache.rat.analysis.IHeaderMatcher</tt>. Suggest that your source files must contain a header like the following:</p>
<div>
<pre> /**
* Yet Another Software License, 1.0
*
* Lots of text, specifying the users rights, and whatever ...
*/</pre></div>
<p>A very easy way to search for such headers would be to scan for the string &quot;Yet Another Software License, 1.0&quot;. And here's how you would do that in your POM:</p>
<div>
<pre> &lt;build&gt;
&lt;plugins&gt;
...
&lt;plugin&gt;
&lt;groupId&gt;org.apache.rat&lt;/groupId&gt;
&lt;artifactId&gt;apache-rat-plugin&lt;/artifactId&gt;
&lt;version&gt;0.13-SNAPSHOT&lt;/version&gt;
&lt;configuration&gt;
&lt;licenses&gt;
&lt;license implementation=&quot;org.apache.rat.analysis.license.SimplePatternBasedLicense&quot;&gt;
&lt;licenseFamilyCategory&gt;YASL1&lt;/licenseFamilyCategory&gt;
&lt;licenseFamilyName&gt;Yet Another Software License (YASL) 1.0&lt;/licenseFamilyName&gt;
&lt;notes&gt;&lt;/notes&gt;
&lt;patterns&gt;
&lt;pattern&gt;Yet Another Software License, 1.0&lt;/pattern&gt;
&lt;/patterns&gt;
&lt;/license&gt;
&lt;/licenses&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
...
&lt;/plugins&gt;
&lt;/build&gt;</pre></div>
<p>The following terms are used in the example:</p>
<table border="1" class="bodyTable">
<tr class="a">
<td align="left">licenseFamilyCategory</td>
<td align="left">The license family category is a very short string (exactly 5 characters, preferrably no blanks), which identifies the license. For example, this could be <tt>AL20</tt> to identify the Apache License, 2.0.</td></tr>
<tr class="b">
<td align="left">licenseFamilyName</td>
<td align="left">The license family name is a longer string, which gives the licenses full name. For example, this could be <tt>Apache License, 2.0</tt>.</td></tr>
<tr class="a">
<td align="left">notes</td>
<td align="left">You might specify additional notes here, like &quot;Dual licensed GPL/MPL&quot;.</td></tr>
<tr class="b">
<td align="left">patterns</td>
<td align="left">Specifies a set of patterns being searched. The source file is assumed to contain the license header, if at least one of these patterns is found.</td></tr></table></div>
<div class="section">
<h2><a name="Approved_License_Families"></a>Approved License Families</h2>
<p>Detecting the license is not enough in many cases as the &quot;new&quot; license may not be considered approved by Rat. In order to make a license approved you provide a custom implementation of <tt>org.apache.rat.license.ILicenseFamily</tt>. Usually all you need to provide the name of the license, in which case the built-in <tt>SimpleLicenseFamily</tt> will do.</p>
<p>To continue the example, in order to make the YASL1 license approved you'd use</p>
<div>
<pre> &lt;build&gt;
&lt;plugins&gt;
...
&lt;plugin&gt;
&lt;groupId&gt;org.apache.rat&lt;/groupId&gt;
&lt;artifactId&gt;apache-rat-plugin&lt;/artifactId&gt;
&lt;version&gt;0.13-SNAPSHOT&lt;/version&gt;
&lt;configuration&gt;
&lt;licenses&gt;
&lt;license implementation=&quot;org.apache.rat.analysis.license.SimplePatternBasedLicense&quot;&gt;
&lt;licenseFamilyCategory&gt;YASL1&lt;/licenseFamilyCategory&gt;
&lt;licenseFamilyName&gt;Yet Another Software License (YASL) 1.0&lt;/licenseFamilyName&gt;
&lt;notes&gt;&lt;/notes&gt;
&lt;patterns&gt;
&lt;pattern&gt;Yet Another Software License, 1.0&lt;/pattern&gt;
&lt;/patterns&gt;
&lt;/license&gt;
&lt;/licenses&gt;
&lt;licenseFamilies&gt;
&lt;licenseFamily implementation=&quot;org.apache.rat.license.SimpleLicenseFamily&quot;&gt;
&lt;familyName&gt;Yet Another Software License&lt;/familyName&gt;
&lt;/licenseFamily&gt;
&lt;/licenseFamilies&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
...
&lt;/plugins&gt;
&lt;/build&gt;</pre></div>
<p>The following terms are used in the example:</p>
<table border="1" class="bodyTable">
<tr class="a">
<td align="left">familyName</td>
<td align="left">The name of the license family name that is approved. This should match <tt>licenseFamilyName</tt> of your <tt>licenseMatcher</tt></td></tr></table></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
<?xml version="1.0" encoding="UTF-8"?>
<footer>Copyright © 2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
of The Apache Software Foundation.
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.</footer>
</div>
<div class="clear">
<hr/>
</div>
</div>
</body>
</html>