README file for Apache Creadur RAT
==================================

The jar in this archive can be used both:
 * stand-alone (CLI)
 * with Ant as an Ant task

Stand-alone (CLI) usage
=======================

java -jar apache-rat-${project.version}.jar --help

For more details, please see the file README-CLI.txt or the website:

http://creadur.apache.org/rat/apache-rat/index.html

Apache Rat Ant Task Library
===========================

It can also be used in conjunction with Ant:

ant -lib apache-rat-${project.version}.jar ...

For more details, please see the file README-ANT.txt or the website:

http://creadur.apache.org/rat/apache-rat-tasks/index.html