org.apache.maven.plugin

## Interface Mojo

All Known Implementing Classes:
  AbstractMojo, AntMojoWrapper, BeanshellMojoAdapter

    public interface Mojo

This interface forms the contract required for `Mojos` to interact with the `Maven` infrastructure.
It features an `execute()` method, which triggers the Mojo's build-process behavior, and can throw a MojoExecutionException or MojoFailureException if error conditions occur.
Also included is the `setLog(...)` method, which simply allows Maven to inject a logging mechanism which will allow the Mojo to communicate to the outside world through standard Maven channels.

Version:
  $Id: Mojo.java 640545 2008-03-24 19:50:56Z bentmann $
Author:
  Jason van Zyl

### Field Summary

Fields
`static java.lang.String` `ROLE` The component `role` hint for Plexus container

### Method Summary

Methods
`void` `execute()` Perform whatever build-process behavior this `Mojo` implements.
`Log` `getLog()` Furnish access to the standard Maven logging mechanism which is managed in this base class.
`void` `setLog(Log log)` Inject a standard `Maven` logging mechanism to allow this `Mojo` to communicate events and feedback to the user.

### Field Detail

#### ROLE

    static final java.lang.String ROLE

The component `role` hint for Plexus container

### Method Detail

#### execute

    void execute()
                 throws MojoExecutionException,
                        MojoFailureException

Perform whatever build-process behavior this `Mojo` implements.
This is the main trigger for the `Mojo` inside the `Maven` system, and allows the `Mojo` to communicate errors.

Throws:
  `MojoExecutionException` - if an unexpected problem occurs. Throwing this exception causes a "BUILD ERROR" message to be displayed.
  `MojoFailureException` - if an expected problem (such as a compilation failure) occurs. Throwing this exception causes a "BUILD FAILURE" message to be displayed.

#### setLog

    void setLog(Log log)

Inject a standard `Maven` logging mechanism to allow this `Mojo` to communicate events and feedback to the user.

Parameters:
  `log` - a new logger

#### getLog

    Log getLog()

Furnish access to the standard Maven logging mechanism which is managed in this base class.

Returns:
  a log4j-like logger object which allows plugins to create messages at levels of `"debug"`, `"info"`, `"warn"`, and `"error"`. This logger is the accepted means to display information to the user.