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]

Reply via email to