desruisseaux commented on code in PR #1144:
URL:
https://github.com/apache/maven-compiler-plugin/pull/1144#discussion_r4172862824
##########
src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java:
##########
@@ -682,6 +682,34 @@ final Charset charset() {
@Parameter(property = "maven.compiler.useIncrementalCompilation")
protected Boolean useIncrementalCompilation;
+ /**
+ * The strategy to use for incremental compilation.
+ * <ul>
+ * <li>{@code timestamp} (default) — the existing timestamp-based
strategy from
+ * {@link IncrementalBuild}. Detects changes by comparing source
file modification
+ * times and triggers full rebuilds when files are added/removed or
dependencies change.
+ * Respects {@link #incrementalCompilation} aspects, {@code
staleMillis}, and
+ * {@code incrementalExcludes}.</li>
+ * <li>{@code abi} — ABI-fingerprint-based strategy. Tracks the public
API surface
+ * (method signatures, field types, constant values, sealed permits,
enum constant
+ * order, generic type parameters) of each compiled type and only
recompiles consumers
+ * whose dependency's ABI actually changed. Method body changes do
not cascade.
+ * Cross-module ABI changes are detected via manifest files written
in the output
+ * directory. Full JPMS support including {@code module-info.java}
fingerprinting
+ * and {@code module-info-patch.maven} tracking.
+ * <p>Note: the ABI strategy has its own change detection and does
not use
+ * {@code staleMillis}, {@code incrementalExcludes}, or the
+ * {@link #incrementalCompilation} aspects. Forked compilation
({@code fork=true})
+ * falls back to full compilation since the ABI analyzer requires
in-process javac.
+ * Setting {@link #useIncrementalCompilation} to {@code false}
disables this
+ * strategy and forces a full rebuild.</p></li>
+ * </ul>
+ *
+ * @since 4.0.0-beta-7
+ */
+ @Parameter(property = "maven.compiler.incrementalStrategy", defaultValue =
"timestamp")
+ protected String incrementalStrategy;
Review Comment:
Should be merged with the existing `incrementalCompilation` field
(potentially renamed).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]