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