# Class ApplicationPlugin

java.lang.Object
org.gradle.api.plugins.ApplicationPlugin

All Implemented Interfaces:
  `Plugin<Project>`

public abstract class ApplicationPlugin extends Object implements Plugin<Project>

A `Plugin` which packages and runs a project as a Java Application.

The plugin can be configured via the `JavaApplication` extension.

See Also:
  - Application plugin reference

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `APPLICATION_GROUP`
  `static final String`
  `APPLICATION_PLUGIN_NAME`
  `static final String`
  `TASK_DIST_TAR_NAME`
  `static final String`
  `TASK_DIST_ZIP_NAME`
  `static final String`
  `TASK_RUN_NAME`
  `static final String`
  `TASK_START_SCRIPTS_NAME`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ApplicationPlugin()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `apply(Project project)`
  Apply this plugin to the given target object.
  `protected abstract org.gradle.api.internal.provider.PropertyFactory`
  `getPropertyFactory()`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### APPLICATION_PLUGIN_NAME

    public static final String APPLICATION_PLUGIN_NAME
    See Also:
      - Constant Field Values

  - ### APPLICATION_GROUP

    public static final String APPLICATION_GROUP
    See Also:
      - Constant Field Values

  - ### TASK_RUN_NAME

    public static final String TASK_RUN_NAME
    See Also:
      - Constant Field Values

  - ### TASK_START_SCRIPTS_NAME

    public static final String TASK_START_SCRIPTS_NAME
    See Also:
      - Constant Field Values

  - ### TASK_DIST_ZIP_NAME

    public static final String TASK_DIST_ZIP_NAME
    See Also:
      - Constant Field Values

  - ### TASK_DIST_TAR_NAME

    public static final String TASK_DIST_TAR_NAME
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ApplicationPlugin

    public ApplicationPlugin()

- ## Method Details

  - ### apply

    public void apply(Project project)
    Description copied from interface: `Plugin`
    Apply this plugin to the given target object.
    Specified by:
      `apply` in interface `Plugin<Project>`
    Parameters:
      `project` - The target object

  - ### getPropertyFactory

    @Inject protected abstract org.gradle.api.internal.provider.PropertyFactory getPropertyFactory()