This is an automated email from the ASF dual-hosted git repository. olamy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-site.git
The following commit(s) were added to refs/heads/master by this push: new c20cd187 Add cache xsd for 1.2.0 release c20cd187 is described below commit c20cd1877bdf37b16f0f603b37c3f488cd7c7762 Author: Olivier Lamy <ol...@apache.org> AuthorDate: Thu Jul 25 12:40:36 2024 +1000 Add cache xsd for 1.2.0 release Signed-off-by: Olivier Lamy <ol...@apache.org> --- content/resources/xsd/build-cache-build-1.2.0.xsd | 279 +++++++ content/resources/xsd/build-cache-config-1.2.0.xsd | 876 +++++++++++++++++++++ content/resources/xsd/build-cache-diff-1.2.0.xsd | 81 ++ content/resources/xsd/build-cache-report-1.2.0.xsd | 81 ++ 4 files changed, 1317 insertions(+) diff --git a/content/resources/xsd/build-cache-build-1.2.0.xsd b/content/resources/xsd/build-cache-build-1.2.0.xsd new file mode 100644 index 00000000..b0041334 --- /dev/null +++ b/content/resources/xsd/build-cache-build-1.2.0.xsd @@ -0,0 +1,279 @@ +<?xml version="1.0"?> +<!-- =================== DO NOT EDIT THIS FILE ==================== --> +<!-- Generated by Modello 2.1.2, --> +<!-- any modifications will be overwritten. --> +<!-- ============================================================== --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/BUILD-CACHE-BUILD/1.2.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-BUILD/1.2.0"> + <xs:element name="build" type="Build"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"></xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="Build"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"></xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="cacheImplementationVersion" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="final" type="xs:boolean"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="hashFunction" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="buildTime" type="xs:dateTime"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="buildServer" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="scm" type="Scm"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="goals"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"></xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="goal" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="artifact" type="Artifact"> + <xs:annotation> + <xs:documentation source="version">1.0.0+</xs:documentation> + <xs:documentation source="description"></xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="attachedArtifacts"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Artifact" name="attachedArtifact" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="executions"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="CompletedExecution" name="execution" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="projectsInputInfo" type="ProjectsInputInfo"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Scm"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="sourceBranch" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="revision" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Artifact"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="version" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="classifier" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="type" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="scope" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="fileName" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="fileHash" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="fileSize" type="xs:long" default="0"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="filePath" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ProjectsInputInfo"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="checksum" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="items"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="DigestItem" name="item" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="DigestItem"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="type" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="hash" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="fileChecksum" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="content" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="isText" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="charset" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="eol" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="CompletedExecution"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="executionKey" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="mojoClassName" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="properties"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="PropertyValue" name="property" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="PropertyValue"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="name" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tracked" type="xs:boolean" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> +</xs:schema> \ No newline at end of file diff --git a/content/resources/xsd/build-cache-config-1.2.0.xsd b/content/resources/xsd/build-cache-config-1.2.0.xsd new file mode 100644 index 00000000..3b92f113 --- /dev/null +++ b/content/resources/xsd/build-cache-config-1.2.0.xsd @@ -0,0 +1,876 @@ +<?xml version="1.0"?> +<!-- =================== DO NOT EDIT THIS FILE ==================== --> +<!-- Generated by Modello 2.1.2, --> +<!-- any modifications will be overwritten. --> +<!-- ============================================================== --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/BUILD-CACHE-CONFIG/1.2.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-CONFIG/1.2.0"> + <xs:element name="cache" type="CacheConfig"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Cache build metadata</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="CacheConfig"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Cache build metadata</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="configuration" type="Configuration"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Configuration of main cache properties</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="input" type="Input"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Configuration for source code input files participating in checksum calculation</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="output" type="Output"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Configuration for output artifacts, it's needed if you want to explicitly include/exclude something from caching</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="executionControl" type="ExecutionControl"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Execution rules for plugins in cached mode. Defines which plugins should run always</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Input"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Configuration for source code input files participating in checksum calculation</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="global" type="PathSet"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Global input calculation rules applicable to all projects and plugins in the build</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="plugins"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Plugin specific input calculation rules</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="PluginConfigurationScan" name="plugin" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="PluginConfigurationScan"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="effectivePom" type="EffectivePom"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Effective pom calculation rules</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="dirScan" type="DirScanConfig"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specifies plugin level rules of configuration processing in search of referenced source files</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="executions"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specifies execution specific configuration processing in search of referenced source files</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="ExecutionConfigurationScan" name="execution" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="groupId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="artifactId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="EffectivePom"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="excludeProperties"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Plugin configuration property should be excluded from effective pom calculation</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="excludeProperty" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ExecutionConfigurationScan"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="execIds"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="execId" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="dirScan" type="DirScanConfig"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specifies rules of configuration processing in search of referenced source files</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + <xs:attribute name="ignoreParentConfig" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">ignore parent config or inherit/merge</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="DirScanConfig"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="includes"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Forces cache to treat property value as input and include in calculation. If set, only included + properties will be takein in calculation (whitelist)</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="TagScanConfig" name="include" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="excludes"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Tag to exclude when scanning plugin configuration for input files (blacklist)</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="TagExclude" name="exclude" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="tagScanConfigs"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Additional processing rules for non-blacklisted tags</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="TagScanConfig" name="tagScanConfig" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="ignoreParent" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Ignore parent settings or inherit and merge</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mode" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description"> + Either 'auto' (scan directory accordingly to cache implementation) or 'skip' (skip directory). + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="TagScanConfig"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="recursive" type="xs:boolean" default="true" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="glob" type="xs:string" default="*" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="tagName" type="xs:string" use="required"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="TagExclude"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="tagName" type="xs:string" use="required"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="PathSet"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Global input calculation rules applicable to all projects and plugins in the build</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="glob" type="xs:string" default="*"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Type of files to globally scan. All types are scanned by default. Example to scan only java and xml files : <code>{*.java,*.xml}</code> + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="includes"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Extra paths to scan in order to compute the checksum (Project and test - sources/resources are already in the scan list)</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Include" name="include" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="excludes"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Paths and files to exclude from checksum computation</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Exclude" name="exclude" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Exclude"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description"><p>A file or a directory path to exclude from the checksum computation. Relative path are relative to each module basedir.</p> + When referring to a directory, additional properties help adjust the scope of the exclusion: + <ul> + <li>glob - only entries matching this <a href="https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob">glob pattern</a> are excluded</li> + <li>entryType - type of entries excluded from the scan</li> + <li>matcherType - entry property on which the glob matching is applied</li> + </ul> + <p>By default, targeting a directory excludes everything underneath it.</p> + Examples : + <ul> + <li><code>&lt;exclude&gt;src/main/doc&lt;/exclude&gt;</code> : excludes everything under : ${project.basedir}/src/main/doc</li> + <li><code>&lt;exclude&gt;src/main/java/package-info.java&lt;/exclude&gt;</code> : excludes this file : ${project.basedir}/src/main/java/package-info.java</li> + <li><code>&lt;exclude glob="package-info.java"&gt;&lt;/exclude&gt;</code> : excludes all the files named package-info.java</li> + <li><code>&lt;exclude glob="src/main/resources&#x2F;**.txt" entryType="FILE" matcherType="PATH" &gt;&lt;/exclude&gt;</code> : excludes all the text files located under the "resources" folder</li> + </ul> + <p> + Exclude elements can also be added per project with the use of <a href="parameters.html#project-level-properties">maven properties.</a> + </p> + </xs:documentation> + </xs:annotation> + <xs:attribute name="glob" type="xs:string" default="**" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Entries are filtered by matching this glob (see matcherType property).</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="entryType" type="xs:string" default="ALL" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Type of entries filtered. One of FILE, DIRECTORY, ALL. Excluding a directory excludes its subfiles and subdirectories.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="matcherType" type="xs:string" default="FILENAME" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">The entry property matched for exclusion. One of FILENAME, PATH. For a path, if the exclusion value is empty or a relative path, matching is done relatively to the project folder.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="Include"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">A <p>file or a directory path to add to checksum computation. Relative path are relative to each module basedir.</p> + <p>Include elements can also be added per project with the use of <a href="parameters.html#project-level-properties">maven properties.</a></p> + </xs:documentation> + </xs:annotation> + <xs:attribute name="recursive" type="xs:boolean" default="true" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Will search in sub-folders if set to true</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="glob" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Files in a directory are filtered by matching their names against this glob.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="Output"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="exclude" type="OutputExclude"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Patterns to exclude output artifacts applicable to all projects in the build</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="OutputExclude"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="patterns"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="pattern" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ExecutionControl"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="runAlways" type="Executables"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify which plugin should run always if present in build regardless of cached status</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="ignoreMissing" type="Executables"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description"> + 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 + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="reconcile" type="Reconcile"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify which plugin should run always if present in build regardless of cached status</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Executables"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="plugins"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify which executions should run always if present in build regardless of cached status</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="PluginSet" name="plugin" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="executions"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify which executions should run always if present in build regardless of cached status</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="ExecutionIdsList" name="execution" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="goalsLists"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify which goals should run always if present in build regardless of cached status</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="GoalsList" name="goalsList" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="GoalsList"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="goals"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Goals identification</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="goal" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="groupId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="artifactId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="PluginSet"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="groupId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="artifactId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="ExecutionIdsList"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="execIds"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Executions ids list with plugin identifier</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="execId" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="groupId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="artifactId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="Reconcile"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="plugins"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Reconciliation rules for plugin properties which might be affected by command line flags, etc</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="GoalReconciliation" name="plugin" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="logAllProperties" type="xs:boolean" default="true" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description"> + 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 (&lt;nolog/&gt;) and whitelists (&lt;log/&gt;) specified on + plugin level + * false: logged only tracked and included by whitelists (&lt;log/&gt;) on plugin level + &lt;log/&gt; + </xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="GoalReconciliation"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="reconciles"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="TrackedProperty" name="reconcile" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="logs"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify property which should be logged to build metadata for exploration</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="PropertyName" name="log" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="nologs"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specify property which should not be logged</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="PropertyName" name="nolog" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element minOccurs="0" name="logAll" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">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 (&lt;nolog/&gt;) and whitelists (&lt;log/&gt;) specified on plugin + level + * false: logged only tracked and included by whitelists (&lt;log/&gt;) on plugin level + </xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + <xs:attribute name="goal" type="xs:string" use="required"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="groupId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="artifactId" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="TrackedProperty"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="propertyName" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="skipValue" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="defaultValue" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="PropertyName"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="propertyName" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="Configuration"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="enabled" type="xs:boolean" default="true"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="hashAlgorithm" type="xs:string" default="XX"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">One of XX, XXMM, METRO, METRO+MM, SHA-1, SHA-256, SHA-384, SHA-512</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="validateXml" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Validate cache config and builds metadata against xsd. + TODO: not implemented + </xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="mandatoryClean" type="xs:boolean" default="false"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Enable the cache storing ability only if a build went through the clean lifecycle.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="multiModule" type="MultiModule"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specifies related to multi module projects configuration.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="projectVersioning" type="ProjectVersioning"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Specifies parameters to handle project version changes.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="remote" type="Remote"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="attachedOutputs" type="AttachedOutputs"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="local" type="Local"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="debugs"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">FileHash (causes file hash is saved in build metadata) or + EffectivePom (causes effective pom info is saved in build metadata)</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="debug" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ProjectVersioning"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:attribute name="adjustMetaInf" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Determines whether version in metadata must be changed according to building project version.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="calculateProjectVersionChecksum" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Determines whether project version should be included to calculate checksum input.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="MultiModule"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="discovery" type="Discovery"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Section to specify how to discover multi module projects.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Discovery"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="scanProfiles"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Profiles to discover multi module project</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="xs:string" name="scanProfile" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Local"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="location" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">The base directory where the local cache is located. + Defaults to {@code $\{localRepository}/../cache}.</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="maxBuildsCached" type="xs:int" default="3"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Maximum number of cached build per artifact in local cache. First created cache (the + oldest) is evicted if breached.</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Remote"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Address of remote cache</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + <xs:attribute name="enabled" type="xs:boolean" default="true" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="saveToRemote" type="xs:boolean" default="false" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Save output to remote cache. Recommended to enable on CI agents only.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="transport" type="xs:string" default="resolver" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">The transport to use, currently, only 'resolver' is supported.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="id" type="xs:string" default="cache" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">The repository id used to find authentication / mirror information in maven settings, default to 'cache'.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="AttachedOutputs"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Section relative to outputs which are not artifacts but need to be saved/restored.</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="dirNames"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Path to a directory containing files which needs to be saved/restored (relative to the build directory).</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="DirName" name="dirName" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="DirName"> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Path to a directory containing files which needs to be saved/restored (relative to the build directory). + <br> + Examples : + <ul> + <li><code>&lt;dirName&gt;classes&lt;/dirName&gt;</code> : files in ${project.basedir}/target/classes</li> + <li><code>&lt;dirName glob="jacoco.xml"&gt;&lt;/dirName&gt;</code> : jacoco report files in ${project.basedir}/target</li> + <li><code>&lt;dirName&gt;../src/main/javagen&lt;/dirName&gt;</code> : files in ${project.basedir}/src/main/javagen (in this exemple, javagen is a folder saved in git but erased on clean) </li> + </ul> + <br><br> + + </xs:documentation> + </xs:annotation> + <xs:attribute name="glob" type="xs:string" default="*" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + <xs:documentation source="description">Entries are filtered by matching this glob.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> +</xs:schema> \ No newline at end of file diff --git a/content/resources/xsd/build-cache-diff-1.2.0.xsd b/content/resources/xsd/build-cache-diff-1.2.0.xsd new file mode 100644 index 00000000..00680f4b --- /dev/null +++ b/content/resources/xsd/build-cache-diff-1.2.0.xsd @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<!-- =================== DO NOT EDIT THIS FILE ==================== --> +<!-- Generated by Modello 2.1.2, --> +<!-- any modifications will be overwritten. --> +<!-- ============================================================== --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/BUILD-CACHE-DIFF/1.2.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-DIFF/1.2.0"> + <xs:element name="diff" type="Diff"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="Diff"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="mismatches"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="Mismatch" name="mismatch" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="Mismatch"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="detail"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="MismatchDetail" name="detail" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + <xs:attribute name="item" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="current" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="baseline" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="reason" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="resolution" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="context" type="xs:string" use="optional"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:complexType> + <xs:complexType name="MismatchDetail"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:complexType> +</xs:schema> \ No newline at end of file diff --git a/content/resources/xsd/build-cache-report-1.2.0.xsd b/content/resources/xsd/build-cache-report-1.2.0.xsd new file mode 100644 index 00000000..73c17e42 --- /dev/null +++ b/content/resources/xsd/build-cache-report-1.2.0.xsd @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<!-- =================== DO NOT EDIT THIS FILE ==================== --> +<!-- Generated by Modello 2.1.2, --> +<!-- any modifications will be overwritten. --> +<!-- ============================================================== --> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/BUILD-CACHE-REPORT/1.2.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-REPORT/1.2.0"> + <xs:element name="cacheReport" type="CacheReport"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:complexType name="CacheReport"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="projects"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element type="ProjectReport" name="project" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + <xs:complexType name="ProjectReport"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + <xs:all> + <xs:element minOccurs="0" name="groupId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="artifactId" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="checksum" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="checksumMatched" type="xs:boolean"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="lifecycleMatched" type="xs:boolean"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="pluginsMatched" type="xs:boolean"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="source" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="sharedToRemote" type="xs:boolean"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element minOccurs="0" name="url" type="xs:string"> + <xs:annotation> + <xs:documentation source="version">0.0.0+</xs:documentation> + </xs:annotation> + </xs:element> + </xs:all> + </xs:complexType> +</xs:schema> \ No newline at end of file