Clone
 

thomas broyer <t.broyer@ltgt.net> in Gradle

Silence unrecognized annotation processor option during incremental processing

This works by registering an additional annotation processor

matching everything so it's guaranteed to be called, and that

collects all other processors' supported options in its own

supported options. That way, all those options will always be

see by javac as being supported, even when recompiling only

a subset of files that won't trigger some processors.

As a side-effect, this fully works around the underlying javac

issue (https://bugs.openjdk.java.net/browse/JDK-8162455) even

during full recompilations.

Fixes #8128

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

Add annotation processor generated sources to SourceSetOutput

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

Only pass -s to javac if annotation processing is supported

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

Set default value to annotationProcessorGeneratedSourcesDirectory

This also fixes the documentation for the options.annotationProcessorPath

default value.

Fixes #4956

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

Convert `plugin-development` project to lazy tasks

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

Add annotationProcessor configurations for each SourceSet

And configure the compileJava.options.annotationProcessorPath

to use the configuration when not empty (and use 'null' when

the configuration is empty to preserve the current behavior).

Part of #2300

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

  1. … 7 more files in changeset.
Update release notes wrt annotation processing promotion/deprecation

Part of #2300

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

    • -1
    • +25
    /subprojects/docs/src/docs/release/notes.md
Deprecates specifying a processorpath in the compilerArgs

We don't want users doing that so that we can correctly cache

their tasks. But, we also don't want to break them as they migrate

from passing the processorpath command line argument via the

annotationProcessorPath property on CompileOptions.

Part of #2300

Signed-off-by: Thomas Broyer <t.broyer@ltgt.net>

Fix SourceSet.compileClasspath default value documentation

All of 6b5be29da02b11eb7d40cca2d0e13a389a2f85c1,

f1c664a7e22655072c3e8df453adace5739c5c45, and

fb8dc31524b2dd6679738f9488bf8b4146165df2 forgot to

update this file.

Java annotation processing design doc: remove proc, add generatedSourcesDir

…and annotationProcessing boolean to toggle -proc:none.

Rationale is -proc:only changes the semantics and (probably) wouldn't play

well with Gradle's incremental builds.

    • -22
    • +77
    /design-docs/java-annotation-processing.md
Design doc for better/built-in Java annotation processing support

    • -0
    • +363
    /design-docs/img/annotation_processing_javaPluginConfigurations.graphml
    • binary
    /design-docs/img/annotation_processing_javaPluginConfigurations.png
    • -0
    • +119
    /design-docs/java-annotation-processing.md
Always pass -sourcepath to javac, allow to configure it in CompileOptions

By default, pass an empty sourcepath to avoid implicitly compiling

sources included as resources in dependencies on the classpath.

To get back to the default behavior of javac, one can use:

compileJava.options.sourcepath = compileJava.classpath