Usage

To use the plugin, you've got two options: First of all, it can create a simple text file, called target/rat.txt, with the plugin's output. This is done by invoking the apache-rat:check goal.

You may also add a report to the generated site. This is your second option.

Writing the report to a text file

To create a text file with the report, you need to run the apache-rat:check goal. Add a section like the following to your POM:

  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.17-SNAPSHOT</version>
      </plugin>
      ...
    </plugins>
  </build>

Once you have done that, the plugin can be run from the command line by simply typing

  mvn apache-rat:check

An example for running the plugin automatically can be found here.

Adding the report to the generated site

A section like the following must be added to your POM:

  <reporting>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.17-SNAPSHOT</version>
      </plugin>
      ...
    </plugins>
  </reporting>

The report will be created automatically when you generate the site:

  mvn site

Options

The Rat Maven plugin has a number of options as is shown in the table below.

Maven                                     Description                                              Argument Type       

<editCopyright>Arg</editCopyright>        The copyright message to use in the license headers.     String              
                                            Usually in the form of "Copyright 2008 Foo".  Only                         
                                            valid with <editLicense>                                                   

<editOverwrite />                         Forces any changes in files to be written directly to    -- none --          
                                            the source files so that new files are not created.                        
                                            Only valid with <editLicense>.                                             

<editLicense />                           Add the default license header to any file with an       -- none --          
                                            unknown license that is not in the exclusion list. By                      
                                            default new files will be created with the license                         
                                            header, to force the modification of existing files                        
                                            use the <editOverwrite> option.                                            

<config>File</config>                     File names for system configuration.                     File                

<configurationNoDefaults />               Ignore default configuration.                            -- none --          

<licensesApproved>LicenseID</licensesApp  A comma separated list of approved License IDs. These    LicenseID           
  roved>                                    licenses will be added to the list of approved                             
                                            licenses.                                                                  

<licensesApprovedFile>File</licensesAppr  Name of file containing comma separated lists of         File                
  ovedFile>                                 approved License IDs.                                                      

<licenseFamiliesApproved>FamilyID</licen  A comma separated list of approved license family IDs.   FamilyID            
  seFamiliesApproved>                       These license families will be added to the list of                        
                                            approved license families.                                                 

<licenseFamiliesApprovedFile>File</licen  Name of file containing comma separated lists of         File                
  seFamiliesApprovedFile>                   approved family IDs.                                                       

<licensesDenied>LicenseID</licensesDenie  A comma separated list of denied License IDs. These      LicenseID           
  d>                                        licenses will be removed from the list of approved                         
                                            licenses. Once licenses are removed they can not be                        
                                            added back.                                                                

<licensesDeniedFile>File</licensesDenied  Name of file containing comma separated lists of the     File                
  File>                                     denied license IDs. These licenses will be removed                         
                                            from the list of approved licenses. Once licenses are                      
                                            removed they can not be added back.                                        

<licenseFamiliesDenied>FamilyID</license  A comma separated list of denied License family IDs.     FamilyID            
  FamiliesDenied>                           These license families will be removed from the list                       
                                            of approved licenses. Once license families are                            
                                            removed they can not be added back.                                        

<licenseFamiliesDeniedFile>File</license  Name of file containing comma separated lists of denied  File                
  FamiliesDeniedFile>                       license IDs. These license families will be removed                        
                                            from the list of approved licenses. Once license                           
                                            families are removed they can not be added back.                           

<counterMax>CounterPattern</counterMax>   The acceptable maximum number for the specified          CounterPattern      
                                            counter. A value of '-1' specifies an unlimited                            
                                            number.                                                                    

<counterMin>CounterPattern</counterMin>   The minimum number for the specified counter.            CounterPattern      

<inputSource>File</inputSource>           A file containing file names to process. File names      File                
                                            must use linux directory separator ('/') or none at                        
                                            all. File names that do not start with '/' are                             
                                            relative to the directory where the argument is                            
                                            located.                                                                   

<inputExclude>Expression</inputExclude>   Excludes files matching <Expression>.                    Expression          

<inputExcludeFile>File</inputExcludeFile  Reads <Expression> entries from a file. Entries will be  File                
  >                                         excluded from processing.                                                  

<inputExcludeStd>StandardCollection</inp  Excludes files defined in standard collections based on  StandardCollection  
  utExcludeStd>                             commonly occurring groups.                                                 

<inputExcludeSize>Integer</inputExcludeS  Excludes files with sizes less than the given argument.  Integer             
  ize>                                                                                                                 

<inputInclude>Expression</inputInclude>   Includes files matching <Expression>. Will override      Expression          
                                            excluded files.                                                            

<inputIncludeFile>File</inputIncludeFile  Reads <Expression> entries from a file. Entries will     File                
  >                                         override excluded files.                                                   

<inputIncludeStd>StandardCollection</inp  Includes files defined in standard collections based on  StandardCollection  
  utIncludeStd>                             commonly occurring groups. Will override excluded                          
                                            files.                                                                     

<inputExcludeParsedScm>StandardCollectio  Parse SCM based exclusion files to exclude specified     StandardCollection  
  n</inputExcludeParsedScm>                 files and directories.                                                     

<outputStyle>StyleSheet</outputStyle>     XSLT stylesheet to use when creating the report. Either  StyleSheet          
                                            an external xsl file may be specified or one of the                        
                                            internal named sheets.                                                     

<outputLicenses>LicenseFilter</outputLic  List the defined licenses.                               LicenseFilter       
  enses>                                                                                                               

<outputFamilies>LicenseFilter</outputFam  List the defined license families.                       LicenseFilter       
  ilies>                                                                                                               

-- not supported --                       Sets the log level.                                      LogLevel            

<dryRun />                                If set do not update the files but generate the          -- none --          
                                            reports.                                                                   

<outputFile>File</outputFile>             Define the output file where to write a report to.       File                

<outputArchive>ProcessingType</outputArc  Specifies the level of detail in ARCHIVE file            ProcessingType      
  hive>                                     reporting.                                                                 

<outputStandard>ProcessingType</outputSt  Specifies the level of detail in STANDARD file           ProcessingType      
  andard>                                   reporting.                                                                 

<helpLicenses />                          Print information about registered licenses.             -- none --          

-- not supported --                       Print help for the RAT command line interface and exit.  -- none --          

Argument Types

The Rat maven plugin uses the standard argument types as shown below.

<>


<Arg>
     A string

<CounterPattern>
     A pattern comprising one of the following prefixes followed by a colon and a count (e.g. UNAPPROVED:5).  Prefixes
         are

         APPROVED: A count of approved licenses. Default range [0, unlimited]

         ARCHIVES: A count of archive files. Default range [0, unlimited]

         BINARIES: A count of binary files. Default range [0, unlimited]

         DOCUMENT_TYPES: A count of distinct document types. Default range [1, unlimited]

         IGNORED: A count of ignored files. Default range [0, unlimited]

         LICENSE_CATEGORIES: A count of distinct license categories. Default range [1, unlimited]

         LICENSE_NAMES: A count of distinct license names. Default range [1, unlimited]

         NOTICES: A count of notice files. Default range [0, unlimited]

         STANDARDS: A count of standard files. Default range [1, unlimited]

         UNAPPROVED: A count of unapproved licenses. Default range [0, 0]

         UNKNOWN: A count of unknown file types. Default range [0, unlimited].

<DirOrArchive>
     A directory or archive file to scan.

<Expression>
     A file matching pattern usually of the form used in Ant build files and '.gitignore' files (see
         https://ant.apache.org/manual/dirtasks.html#patterns for examples). Regular expression patterns may be
         specified by surrounding the pattern with '%regex[' and ']'. For example '%regex[[A-Z].*]' would match files
         and directories that start with uppercase latin letters.

<FamilyID>
     The ID for a license family.

<File>
     A file name.

<Integer>
     An integer value.

<LicenseFilter>
     A defined filter for the licenses to include. Valid values: ALL, APPROVED, NONE.

<LicenseID>
     The ID for a license.

<LogLevel>
     The log level to use. Valid values DEBUG, INFO, WARN, ERROR, OFF.

<ProcessingType>
     Specifies how to process file types. Valid values are:
         NOTIFICATION: List file as present

         PRESENCE: List any licenses found

         ABSENCE: List licenses found and any unknown licences

<StandardCollection>
     Defines standard expression patterns (see above). Valid values are:
         ALL: All of the Standard Excludes combined.

         ARCH: The files and directories created by an ARCH source code control based tool.

         BAZAAR: The files and directories created by a Bazaar source code control based tool.

         BITKEEPER: The files and directories created by a Bitkeeper source code control based tool.

         CVS: The files and directories created by a CVS source code control based tool.

         DARCS: The files and directories created by a DARCS source code control based tool.

         ECLIPSE: The files and directories created by an Eclipse IDE based tool.

         GIT: The files and directories created by GIT source code control to support GIT, also processes files listed
         in '.gitignore'.

         HIDDEN_DIR: The hidden directories. Directories with names that start with '.'

         HIDDEN_FILE: The hidden files. Directories with names that start with '.'

         IDEA: The files and directories created by an IDEA IDE based tool.

         MAC: The .DS_Store files on Mac computers.

         MAVEN: The files and directories created by Maven build system based project.

         MERCURIAL: The files and directories created by a Mercurial source code control based tool.

         MISC: The set of miscellaneous files generally left by editors and the like.

         MKS: The files and directories created by an MKS source code control based tool.

         RCS: The files and directories created by a RCS source code control based tool.

         SCCS: The files and directories created by a SCCS source code control based tool.

         SERENA_DIMENSIONS_10: The files and directories created by a Serena Dimensions V10 change control system based
         tool.

         STANDARD_PATTERNS: A standard collection of generally accepted patterns to ignore.

         STANDARD_SCMS: A standard collection of SCMs

         SUBVERSION: The files and directories created by a Subversion source code control based tool.

         SURROUND_SCM: The files and directories created by a Surround SCM source code control based tool.

         VSS: The files and directories created by a Visual Source Safe source code control based tool.

<StyleSheet>
     Either an external xsl file or one of the internal named sheets. Internal sheets are:
         plain-rat: The default style.

         missing-headers: Produces a report of files that are missing headers.

         unapproved-licenses: Produces a report of the files with unapproved licenses.

         xml: Produces output in pretty-printed XML.