<!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>
