# Package com.atlassian.clover.api.ci

Provides classes to programtically integrate Clover into an Ant or Maven2 build, typically from within a Continuous Integration server.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Integrator | An Integrator is designed to provied a simple means to enable Clover for a build from a CI environment.

- Class Summary
  Class | Description
  --- | ---
  CIOptions |
  CIOptions.Builder | This class is used to configure one of the `Integrator` classes.
  Integrator.Factory |

## Package com.atlassian.clover.api.ci Description

Provides classes to programtically integrate Clover into an Ant or Maven2 build, typically from within a Continuous Integration server. Clover can be integrated into both Ant and Maven2 purely by decorating the respective command lines. This api adds a nice wrapper around creating the appropriate list of arguments to add to the command line depending on what options an end user has configured.

The `CIOptions.Builder` should be used to create and configure a `CIOptions` instance that then gets passed to one of the `Integrator.Factory`'s "new*" methods.

## Examples

To integrate Clover into an Ant build, with the default set of options you would use:

      CIOptions options =  new CIOptions.Builder().build();
      Integrator antIntegrator = Integrator.Factory.newAntIntegrator(options);
      List<String> args = new ArrayList<String>(Arrays.asList("clean","test"));
      antIntegrator.decorateArguments(args);

      // args now contain extra args that will enable Clover to instrument all java source files and generate a coverage report.

## Related Documentation

For more information relating to Clover integration, please view the

- Clover for Ant User Guide
- Clover for Maven User Guide

If you have any problems using this api, or feature requests please don't hesitate to create an issue.

Since:
  2.6.0