Chapter 11. Using rejarForAnalysis

If your project consists of many jarfiles or the jarfiles are scattered over many directories, you may wish to use the rejarForAnalysis script to make FindBugs invocation easier. The script collects many jarfiles and combines them into a single, large jarfile that can then be easily passed to FindBugs for analysis. This can be particularly useful in combination with the 'find' command on unix systems; e.g. find . -name '*.jar' | xargs rejarForAnalysis .

The rejarForAnalysis script can also be used to split a very large project up into a set of jarfiles with the project classfiles evenly divided between them. This is useful when running FindBugs on the entire project is not practical due to time or memory consumption. Instead of running FindBugs on the entire project, you may use rejarForAnalysis build one large, all-inclusive jarfile containing all classes, invoke rejarForAnalysis again to split the project into multiple jarfiles, then run FindBugs on each divided jarfiles in turn, specifying the the all-inclusive jarfile in the -auxclasspath.

These are the options accepted by the rejarForAnalysis script:

-maxAge days

Maximum age in days (ignore jar files older than this).

-inputFileList filename

Text file containing names of jar files.

-maxClasses num

Maximum number of classes per analysis*.jar file.

-prefix class name prefix

Prefix of class names that should be analyzed (e.g., edu.umd.cs.).