# Class JavaPlatformPlugin

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

All Implemented Interfaces:
  `Plugin<Project>`

public abstract class JavaPlatformPlugin extends Object implements Plugin<Project>
The Java platform plugin allows building platform components for Java, which are usually published as BOM files (for Maven) or Gradle platforms (Gradle metadata).

Since:
  5.2
See Also:
  - Java Platform plugin reference

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `API_CONFIGURATION_NAME`
  `static final String`
  `API_ELEMENTS_CONFIGURATION_NAME`
  `static final String`
  `CLASSPATH_CONFIGURATION_NAME`
  `static final String`
  `ENFORCED_API_ELEMENTS_CONFIGURATION_NAME`
  `static final String`
  `ENFORCED_RUNTIME_ELEMENTS_CONFIGURATION_NAME`
  `static final String`
  `RUNTIME_CONFIGURATION_NAME`
  `static final String`
  `RUNTIME_ELEMENTS_CONFIGURATION_NAME`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JavaPlatformPlugin(SoftwareComponentFactory softwareComponentFactory)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `apply(Project project)`
  Apply this plugin to the given target object.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### API_CONFIGURATION_NAME

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

  - ### RUNTIME_CONFIGURATION_NAME

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

  - ### API_ELEMENTS_CONFIGURATION_NAME

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

  - ### RUNTIME_ELEMENTS_CONFIGURATION_NAME

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

  - ### ENFORCED_API_ELEMENTS_CONFIGURATION_NAME

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

  - ### ENFORCED_RUNTIME_ELEMENTS_CONFIGURATION_NAME

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

  - ### CLASSPATH_CONFIGURATION_NAME

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

- ## Constructor Details

  - ### JavaPlatformPlugin

    @Inject public JavaPlatformPlugin(SoftwareComponentFactory softwareComponentFactory)

- ## 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