BuildCacheConfig
Maven Incremental Build and Cache configuration, stored in .mvn/maven-build-cache-config.xml
<cache xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.0 https://maven.apache.org/xsd/build-cache-config-1.0.0.xsd"> <configuration> <enabled/> <hashAlgorithm/> <validateXml/> <multiModule> <discovery> <scanProfiles/> </discovery> </multiModule> <projectVersioning adjustMetaInf=.. /> <remote enabled=.. saveToRemote=.. transport=.. id=.. > <url/> </remote> <attachedOutputs> <dirNames/> </attachedOutputs> <local> <location/> <maxBuildsCached/> </local> <debugs/> </configuration> <input> <global> <glob/> <includes> <include recursive=.. glob=.. /> </includes> <excludes> <exclude/> </excludes> </global> <plugins> <plugin groupId=.. artifactId=.. > <effectivePom> <excludeProperties/> </effectivePom> <dirScan ignoreParent=.. mode=.. > <includes> <include recursive=.. glob=.. tagName=.. /> </includes> <excludes> <exclude tagName=.. /> </excludes> <tagScanConfigs> <tagScanConfig recursive=.. glob=.. tagName=.. /> </tagScanConfigs> </dirScan> <executions> <execution ignoreParentConfig=.. > <execIds/> <dirScan ignoreParent=.. mode=.. > <includes> <include recursive=.. glob=.. tagName=.. /> </includes> <excludes> <exclude tagName=.. /> </excludes> <tagScanConfigs> <tagScanConfig recursive=.. glob=.. tagName=.. /> </tagScanConfigs> </dirScan> </execution> </executions> </plugin> </plugins> </input> <output> <exclude> <patterns/> </exclude> </output> <executionControl> <runAlways> <plugins> <plugin groupId=.. artifactId=.. /> </plugins> <executions> <execution groupId=.. artifactId=.. > <execIds/> </execution> </executions> <goalsLists> <goalsList groupId=.. artifactId=.. > <goals/> </goalsList> </goalsLists> </runAlways> <ignoreMissing> <plugins> <plugin groupId=.. artifactId=.. /> </plugins> <executions> <execution groupId=.. artifactId=.. > <execIds/> </execution> </executions> <goalsLists> <goalsList groupId=.. artifactId=.. > <goals/> </goalsList> </goalsLists> </ignoreMissing> <reconcile logAllProperties=.. > <plugins> <plugin goal=.. groupId=.. artifactId=.. > <reconciles> <reconcile propertyName=.. skipValue=.. defaultValue=.. /> </reconciles> <logs> <log propertyName=.. /> </logs> <nologs> <nolog propertyName=.. /> </nologs> <logAll/> </plugin> </plugins> </reconcile> </executionControl> </cache>
cache
Cache build metadata
Element | Type | Description |
---|---|---|
configuration
|
Configuration
|
Configuration of main cache properties |
input
|
Input
|
Configuration for source code input files participating in checksum calculation |
output
|
Output
|
Configuration for output artifacts, it's needed if you want to explicitly include/exclude something from caching |
executionControl
|
ExecutionControl
|
Execution rules for plugins in cached mode. Defines which plugins should run always |
configuration
No description.
Element | Type | Description |
---|---|---|
enabled
|
boolean
|
No description.
Default value is: |
hashAlgorithm
|
String
|
One of XX, XXMM, SHA-1, SHA-256, SHA-384, SHA-512
Default value is: |
validateXml
|
boolean
|
Validate cache config and builds metadata against xsd. TODO: not implemented
Default value is: |
multiModule
|
MultiModule
|
Specifies related to multi module projects configuration. |
projectVersioning
|
ProjectVersioning
|
Specifies parameters to handle project version changes. |
remote
|
Remote
|
No description. |
attachedOutputs
|
AttachedOutputs
|
No description. |
local
|
Local
|
No description. |
debugs/debug*
|
List<String>
|
(Many) FileHash (causes file hash is saved in build metadata) or EffectivePom (causes effective pom info is saved in build metadata) |
multiModule
No description.
Element | Type | Description |
---|---|---|
discovery
|
Discovery
|
Section to specify how to discover multi module projects. |
discovery
No description.
Element | Type | Description |
---|---|---|
scanProfiles/scanProfile*
|
List<String>
|
(Many) Profiles to discover multi module project |
projectVersioning
No description.
Attribute | Type | Description |
---|---|---|
adjustMetaInf
|
boolean
|
Determines whether version in metadata must be changed according to building project version.
Default value is: |
remote
No description.
Attribute | Type | Description |
---|---|---|
enabled
|
boolean
|
No description.
Default value is: |
saveToRemote
|
boolean
|
Save output to remote cache. Recommended to enable on CI agents only.
Default value is: |
transport
|
String
|
The transport to use, currently, only 'resolver' is supported.
Default value is: |
id
|
String
|
The repository id used to find authentication / mirror information in maven settings, default to 'cache'.
Default value is: |
Element | Type | Description |
---|---|---|
url
|
String
|
Address of remote cache |
attachedOutputs
No description.
Element | Type | Description |
---|---|---|
dirNames/dirName*
|
List<String>
|
(Many) Directory name in build output directory to attach to cached artifacts |
local
No description.
Element | Type | Description |
---|---|---|
location
|
String
|
The base directory where the local cache is located. Defaults to {@code $\{localRepository}/../cache}. |
maxBuildsCached
|
int
|
Maximum number of cached build per artifact in local cache. First created cache (the oldest) is evicted if breached.
Default value is: |
input
No description.
Element | Type | Description |
---|---|---|
global
|
PathSet
|
Global input calculation rules applicable to all projects and plugins in the build |
plugins/plugin*
|
List<PluginConfigurationScan>
|
(Many) Plugin specific input calculation rules |
global
No description.
Element | Type | Description |
---|---|---|
glob
|
String
|
No description.
Default value is: |
includes/include*
|
List<Include>
|
(Many) No description. |
excludes/exclude*
|
List<Exclude>
|
(Many) No description. |
include
No description.
Element Content: No description.
Attribute | Type | Description |
---|---|---|
recursive
|
boolean
|
No description.
Default value is: |
glob
|
String
|
No description. |
exclude
No description.
Element Content: No description.
plugin
No description.
Attribute | Type | Description |
---|---|---|
groupId
|
String
|
No description. |
artifactId
|
String
|
No description. |
Element | Type | Description |
---|---|---|
effectivePom
|
EffectivePom
|
Effective pom calculation rules |
dirScan
|
DirScanConfig
|
Specifies plugin level rules of configuration processing in search of referenced source files |
executions/execution*
|
List<ExecutionConfigurationScan>
|
(Many) Specifies execution specific configuration processing in search of referenced source files |
effectivePom
No description.
Element | Type | Description |
---|---|---|
excludeProperties/excludeProperty*
|
List<String>
|
(Many) Plugin configuration property should be excluded from effective pom calculation |
dirScan
No description.
Attribute | Type | Description |
---|---|---|
ignoreParent
|
boolean
|
Ignore parent settings or inherit and merge
Default value is: |
mode
|
String
|
Either 'auto' (scan directory accordingly to cache implementation) or 'skip' (skip directory). |
Element | Type | Description |
---|---|---|
includes/include*
|
List<TagScanConfig>
|
(Many) Forces cache to treat property value as input and include in calculation. If set, only included properties will be takein in calculation (whitelist) |
excludes/exclude*
|
List<TagExclude>
|
(Many) Tag to exclude when scanning plugin configuration for input files (blacklist) |
tagScanConfigs/tagScanConfig*
|
List<TagScanConfig>
|
(Many) Additional processing rules for non-blacklisted tags |
include
No description.
Attribute | Type | Description |
---|---|---|
recursive
|
boolean
|
No description.
Default value is: |
glob
|
String
|
No description.
Default value is: |
tagName
|
String
|
No description. |
exclude
No description.
Attribute | Type | Description |
---|---|---|
tagName
|
String
|
No description. |
tagScanConfig
No description.
Attribute | Type | Description |
---|---|---|
recursive
|
boolean
|
No description.
Default value is: |
glob
|
String
|
No description.
Default value is: |
tagName
|
String
|
No description. |
execution
No description.
Attribute | Type | Description |
---|---|---|
ignoreParentConfig
|
boolean
|
ignore parent config or inherit/merge
Default value is: |
Element | Type | Description |
---|---|---|
execIds/execId*
|
List<String>
|
(Many) No description. |
dirScan
|
DirScanConfig
|
Specifies rules of configuration processing in search of referenced source files |
output
No description.
Element | Type | Description |
---|---|---|
exclude
|
OutputExclude
|
Patterns to exclude output artifacts applicable to all projects in the build |
exclude
No description.
Element | Type | Description |
---|---|---|
patterns/pattern*
|
List<String>
|
(Many) No description. |
executionControl
No description.
Element | Type | Description |
---|---|---|
runAlways
|
Executables
|
Specify which plugin should run always if present in build regardless of cached status |
ignoreMissing
|
Executables
|
Specify which executions/plugins/goals do not affect generated artifacts and do not affect build correctness. If cached build lacks of ignorable executions only, it still could be reused. Typically case is then cached build is produced with 'verify' and you locally you run 'install'. Strictly speaking these are different builds but in most of cases you want this difference to be ignored |
reconcile
|
Reconcile
|
Specify which plugin should run always if present in build regardless of cached status |
runAlways
No description.
Element | Type | Description |
---|---|---|
plugins/plugin*
|
List<PluginSet>
|
(Many) Specify which executions should run always if present in build regardless of cached status |
executions/execution*
|
List<ExecutionIdsList>
|
(Many) Specify which executions should run always if present in build regardless of cached status |
goalsLists/goalsList*
|
List<GoalsList>
|
(Many) Specify which goals should run always if present in build regardless of cached status |
plugin
No description.
Attribute | Type | Description |
---|---|---|
groupId
|
String
|
No description. |
artifactId
|
String
|
No description. |
execution
No description.
Attribute | Type | Description |
---|---|---|
groupId
|
String
|
No description. |
artifactId
|
String
|
No description. |
Element | Type | Description |
---|---|---|
execIds/execId*
|
List<String>
|
(Many) Executions ids list with plugin identifier |
goalsList
No description.
Attribute | Type | Description |
---|---|---|
groupId
|
String
|
No description. |
artifactId
|
String
|
No description. |
Element | Type | Description |
---|---|---|
goals/goal*
|
List<String>
|
(Many) Goals identification |
ignoreMissing
No description.
Element | Type | Description |
---|---|---|
plugins/plugin*
|
List<PluginSet>
|
(Many) Specify which executions should run always if present in build regardless of cached status |
executions/execution*
|
List<ExecutionIdsList>
|
(Many) Specify which executions should run always if present in build regardless of cached status |
goalsLists/goalsList*
|
List<GoalsList>
|
(Many) Specify which goals should run always if present in build regardless of cached status |
reconcile
No description.
Attribute | Type | Description |
---|---|---|
logAllProperties
|
boolean
|
Controls if all plugin properties to be logged (true is default). All the properties logged with respect to children: * logAll on plugin level overrides global value * true: logged all if no blacklists (<nolog/>) and whitelists (<log/>) specified on plugin level * false: logged only tracked and included by whitelists (<log/>) on plugin level <log/>
Default value is: |
Element | Type | Description |
---|---|---|
plugins/plugin*
|
List<GoalReconciliation>
|
(Many) Reconciliation rules for plugin properties which might be affected by command line flags, etc |
plugin
No description.
Attribute | Type | Description |
---|---|---|
goal
|
String
|
No description. |
groupId
|
String
|
No description. |
artifactId
|
String
|
No description. |
Element | Type | Description |
---|---|---|
reconciles/reconcile*
|
List<TrackedProperty>
|
(Many) No description. |
logs/log*
|
List<PropertyName>
|
(Many) Specify property which should be logged to build metadata for exploration |
nologs/nolog*
|
List<PropertyName>
|
(Many) Specify property which should not be logged |
logAll
|
boolean
|
Controls if all plugin properties to be logged (true is default). All the properties logged with respect to log/nolog children: * true: logged all if no blacklists (<nolog/>) and whitelists (<log/>) specified on plugin level * false: logged only tracked and included by whitelists (<log/>) on plugin level
Default value is: |
reconcile
No description.
Element Content: No description.
Attribute | Type | Description |
---|---|---|
propertyName
|
String
|
No description. |
skipValue
|
String
|
No description. |
defaultValue
|
String
|
No description. |
log
No description.
Element Content: No description.
Attribute | Type | Description |
---|---|---|
propertyName
|
String
|
No description. |
nolog
No description.
Element Content: No description.
Attribute | Type | Description |
---|---|---|
propertyName
|
String
|
No description. |