AlexanderAshitkin commented on a change in pull request #631:
URL: https://github.com/apache/maven/pull/631#discussion_r763162965



##########
File path: maven-caching-extension/src/site/markdown/CACHE.md
##########
@@ -17,154 +17,110 @@
 
 ## Overview
 
-Idea of Incremental Maven is to specify module inputs and outputs and make 
them known to standard Maven core. This
-allows accurate analysis and determination of out-of-date build artifacts in 
the build dependencies graph. Making the
-dependency graph analysis deterministic leads to improvements in build times 
by avoiding re-building unnecessary
-modules.  
-Cache does not make any low-level interventions to build process and delegates 
actual build work to Maven core. This
-guarantees that build results are identical to results produced by standard 
Maven and are fully reproducible.   
-To achieve accurate input and outputs calculation incremental Maven combines 
automatic introspection
-of [project object model](https://maven.apache.org/pom.html#What_is_the_POM) 
in conjunction with configuration-driven
-rules for fine-grained content and execution control. For content analysis it 
digests based approach which is more
-reliable over widely used file timestamps in tools like Make or Apache Ant. 
Deterministic build state allows reliably
-cache even intermediate outputs of build and share them between teams using 
remote cache. Deterministic inputs
-calculation allows distributed and parallel builds running in heterogeneous 
environments (like cloud of build agents)
-could efficiently reuse cached build artifacts. Therefore incremental Maven is 
particularly well-suited for large Maven
-projects that have significant number of small modules. Remote cache in 
conjunction with precise input identification
-effectively enables "change once - build once" approach.
+Build cache is an extension targeted to simplify and make more efficient work 
with large repositories in Maven. That is
+achieved by a combination of features:
+
+* Incremental builds over the changed project graph part only
+* Subtree support in multimodule projects (caches discovered from the larger 
project)
+* Version normalization to support project version agnostic caches
+* Project state restoration (partial) to avoid expensive tasks (code 
generation and similar)
+
+Large projects usually pose scalability challenges and work with such projects 
require build tool which scales. Cache
+extension addresses that with incremental build execution and ability to 
efficiently work on sub-parts of a larger
+project without building and installing dependencies from the larger project. 
Though, features implemented in maven
+should give noticeable benefits in medium and small sized projects as well.
+
+### Cache concepts
+
+Idea of Incremental Maven is to calculate key from module inputs, store 
outputs in cache and restore them later
+transparently to the standard Maven core. In order to calculate the key cache 
engine analyzes source code, build flow,
+plugins and their parameters. This allows to deterministically associate each 
project state with unique key and restore
+up-to-date(not changed) projects from cache and rebuild out-of-date(changed) 
ones. Restoring artifacts associated with a

Review comment:
       fixed




-- 
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: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to