# AnnotationProcessorOptions

# AnnotationProcessorOptions

<br />

```
public interface AnnotationProcessorOptions
```

<br />

*** ** * ** ***

Options for configuring Java annotation processor.

## Summary

|                                                                                                                                                                                                                                                                                                           ### Public methods                                                                                                                                                                                                                                                                                                            |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [argument](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#argument(kotlin.String,kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` key, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` value)` Adds an argument that represent primitive types for annotation processors.                                                                                                                                                                                                  |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [arguments](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#arguments(kotlin.collections.Map))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Map](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`> arguments)` Adds arguments that represent primitive types for annotation processors. |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [className](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#className(kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` className)` Adds an annotation processor class to run.                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [classNames](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#classNames(kotlin.Array))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` classNames)` Adds annotation processor classes to run.                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [compilerArgumentProvider](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProvider(org.gradle.process.CommandLineArgumentProvider))`(` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)` compilerArgumentProvider` `)` Adds an argument for annotation processors that you want to pass to the Android plugin using the[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)class.                                                                                                                                                 |
| `abstract void`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | [compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array))`(` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)` compilerArgumentProviders` `)` Adds arguments for annotation processors that you want to pass to the Android plugin using the[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)class.                                                                                                                                                                                  |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Map](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>` | [getArguments](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#getArguments())`()` Specifies arguments that represent primitive types for annotation processors.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[List](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>`                                                                                                                                                                                                           | [getClassNames](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#getClassNames())`()` Specifies the annotation processor classes to run.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[List](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)`>`                                                                                                                                                                             | [getCompilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#getCompilerArgumentProviders())`()` Specifies arguments for annotation processors that you want to pass to the Android plugin using the[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)class.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

## Public methods

### argument

```
abstract void argument(@NonNull String key, @NonNull String value)
```

Adds an argument that represent primitive types for annotation processors.

If one or more arguments represent files or directories, you must instead use[compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array)).  

|                                                                                          See also                                                                                           |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array)) |   |

### arguments

```
abstract void arguments(@NonNull Map<@NonNull String, @NonNull String> arguments)
```

Adds arguments that represent primitive types for annotation processors.

If one or more arguments represent files or directories, you must instead use[compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array)).  

|                                                                                          See also                                                                                           |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array)) |   |

### className

```
abstract void className(@NonNull String className)
```

Adds an annotation processor class to run.

By default, this property is empty and the plugin automatically discovers and runs annotation processors that you add to the annotation processor classpath. To learn more about adding annotation processor dependencies to your project, read[Add annotation processors](https://d.android.com/studio/build/dependencies#annotation_processor).  

### classNames

```
abstract void classNames(@NonNull String classNames)
```

Adds annotation processor classes to run.

By default, this property is empty and the plugin automatically discovers and runs annotation processors that you add to the annotation processor classpath. To learn more about adding annotation processor dependencies to your project, read[Add annotation processors](https://d.android.com/studio/build/dependencies#annotation_processor).  

### compilerArgumentProvider

```
abstract void compilerArgumentProvider(
    @NonNull CommandLineArgumentProvider compilerArgumentProvider
)
```

Adds an argument for annotation processors that you want to pass to the Android plugin using the[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)class.

The benefit of using this class is that it allows you or the annotation processor author to improve the correctness and performance of incremental and cached clean builds by applying[incremental build property type annotations](https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks).

To learn more about how to use this class to annotate arguments for annotation processors and pass them to the Android plugin, read[Pass arguments to annotation processors](https://developer.android.com/studio/build/dependencies#processor-arguments).  

### compilerArgumentProviders

```
abstract void compilerArgumentProviders(
    @NonNull CommandLineArgumentProvider compilerArgumentProviders
)
```

Adds arguments for annotation processors that you want to pass to the Android plugin using the[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)class.

The benefit of using this class is that it allows you or the annotation processor author to improve the correctness and performance of incremental and cached clean builds by applying[incremental build property type annotations](https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks).

To learn more about how to use this class to annotate arguments for annotation processors and pass them to the Android plugin, read[Pass arguments to annotation processors](https://developer.android.com/studio/build/dependencies#processor-arguments).  

### getArguments

```
abstract @NonNull Map<@NonNull String, @NonNull String> getArguments()
```

Specifies arguments that represent primitive types for annotation processors.

If one or more arguments represent files or directories, you must instead use[compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array)).  

|                                                                                          See also                                                                                           |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [compilerArgumentProviders](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/AnnotationProcessorOptions#compilerArgumentProviders(kotlin.Array)) |   |

### getClassNames

```
abstract @NonNull List<@NonNull String> getClassNames()
```

Specifies the annotation processor classes to run.

By default, this property is empty and the plugin automatically discovers and runs annotation processors that you add to the annotation processor classpath. To learn more about adding annotation processor dependencies to your project, read[Add annotation processors](https://d.android.com/studio/build/dependencies#annotation_processor).  

### getCompilerArgumentProviders

```
abstract @NonNull List<@NonNull CommandLineArgumentProvider> getCompilerArgumentProviders()
```

Specifies arguments for annotation processors that you want to pass to the Android plugin using the[CommandLineArgumentProvider](https://docs.gradle.org/current/javadoc/org/gradle/process/CommandLineArgumentProvider.html)class.

The benefit of using this class is that it allows you or the annotation processor author to improve the correctness and performance of incremental and cached clean builds by applying[incremental build property type annotations](https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks).

To learn more about how to use this class to annotate arguments for annotation processors and pass them to the Android plugin, read[Pass arguments to annotation processors](https://developer.android.com/studio/build/dependencies#processor-arguments).