# Class IdeaPlugin

java.lang.Object
org.gradle.plugins.ide.internal.IdePlugin
org.gradle.plugins.ide.idea.IdeaPlugin

All Implemented Interfaces:
  `Plugin<Project>`

public abstract class IdeaPlugin extends org.gradle.plugins.ide.internal.IdePlugin
Adds a GenerateIdeaModule task. When applied to a root project, also adds a GenerateIdeaProject task. For projects that have the Java plugin applied, the tasks receive additional Java-specific configuration.

See Also:
  - IDEA plugin reference

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final com.google.common.base.Function<Project, JavaVersion>`
  `SOURCE_COMPATIBILITY`
  `static final com.google.common.base.Function<Project, JavaVersion>`
  `TARGET_COMPATIBILITY`

  ### Fields inherited from class org.gradle.plugins.ide.internal.IdePlugin

  `project`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IdeaPlugin(org.gradle.plugins.ide.internal.configurer.UniqueProjectNameProvider uniqueProjectNameProvider, org.gradle.plugins.ide.internal.IdeArtifactRegistry artifactRegistry, org.gradle.api.internal.project.ProjectStateRegistry projectPathRegistry)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract BuildFeatures`
  `getBuildFeatures()`
  `protected String`
  `getLifecycleTaskName()`
  `IdeaModel`
  `getModel()`
  `protected abstract ObjectFactory`
  `getObjectFactory()`
  `protected void`
  `onApply(Project project)`
  `protected boolean`
  `shouldDeprecateLifecycleTask()`

  ### Methods inherited from class org.gradle.plugins.ide.internal.IdePlugin

  `addWorker, addWorker, addWorker, addWorker, addWorkspace, apply, cleanName, dependsOn, dependsOn, getCleanTask, getExecOperations, getLifecycleTask, isRoot, toGradleCommand, withDescription`

  ### Methods inherited from class Object

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

- ## Field Details

  - ### SOURCE_COMPATIBILITY

    public static final com.google.common.base.Function<Project, JavaVersion> SOURCE_COMPATIBILITY

  - ### TARGET_COMPATIBILITY

    public static final com.google.common.base.Function<Project, JavaVersion> TARGET_COMPATIBILITY

- ## Constructor Details

  - ### IdeaPlugin

    @Inject public IdeaPlugin(org.gradle.plugins.ide.internal.configurer.UniqueProjectNameProvider uniqueProjectNameProvider, org.gradle.plugins.ide.internal.IdeArtifactRegistry artifactRegistry, org.gradle.api.internal.project.ProjectStateRegistry projectPathRegistry)

- ## Method Details

  - ### getObjectFactory

    @Inject protected abstract ObjectFactory getObjectFactory()

  - ### getModel

    public IdeaModel getModel()

  - ### getLifecycleTaskName

    protected String getLifecycleTaskName()
    Specified by:
      `getLifecycleTaskName` in class `org.gradle.plugins.ide.internal.IdePlugin`

  - ### shouldDeprecateLifecycleTask

    protected boolean shouldDeprecateLifecycleTask()
    Overrides:
      `shouldDeprecateLifecycleTask` in class `org.gradle.plugins.ide.internal.IdePlugin`

  - ### onApply

    protected void onApply(Project project)
    Overrides:
      `onApply` in class `org.gradle.plugins.ide.internal.IdePlugin`

  - ### getBuildFeatures

    @Inject protected abstract BuildFeatures getBuildFeatures()