Fork me on GitHub

General

What does the Animal Sniffer Maven Plugin do?

The Animal Sniffer Maven Plugin provides a means to verify that your classes only use the classes, methods and fields provided by specific API signatures that you specify. The plugin also provides a means to generate API signatures from your project and/or a specific JDK.

[top]


Why the name?

The plugin's original author (Kohsuke Kawaguchi) named the plugin animal-sniffer because it was originally designed to detect which version of a JRE had been used to compile your classes. As such it was detecting the "scent" of each JRE.

Sun has traditionally named each of the major versions of its JRE after different animals. For example 1.5 (a.k.a Java SE 5.0) was known as Tiger; 1.6 (a.k.a. Java SE 6.0) was known as Mustang. Since this plugin detects the "scent" of each of these "animals" it got the name "animal-sniffer".

[top]


Which is the "official" animal-sniffer host: Codehaus or java.net?

This project is the "official" project. The java.net project was started by Kohsuke Kawaguchi before he was granted commit access to the mojo project. Since Kohsuke was granted commit access in part to allow the migration of animal-sniffer to Codehaus, he has decreed the Codehaus version the "official" version as well as re-licensed the Codehaus version under the MIT License. The java.net version remains licensed under CDDL.

This version (by virtue of belonging to mojo.codehaus.org) has the advantage of being available in the Maven Central repository which means that projects which publish to the Maven Central repository can use this version in their pom.xml. Note: Projects which publish to the Maven Central repository must only reference dependencies and plugins available from the Maven Central repository and may not reference other repositories.

In addition, this version has been subject to on-going development effort.

[top]