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
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `ROLE` The component `role` hint for Plexus container

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.