You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/11/30 20:23:36 UTC
[maven-site] branch master updated: [MNGSITE-499] Publish build-cache-extension schemas (#340)
This is an automated email from the ASF dual-hosted git repository.
gnodet 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 c0b33e46 [MNGSITE-499] Publish build-cache-extension schemas (#340)
c0b33e46 is described below
commit c0b33e46bcab1f96d0b875b0c56c8fe33af2cc2d
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Nov 30 21:23:32 2022 +0100
[MNGSITE-499] Publish build-cache-extension schemas (#340)
---
content/resources/xsd/build-cache-build-1.0.0.xsd | 293 ++++++++
content/resources/xsd/build-cache-config-1.0.0.xsd | 808 +++++++++++++++++++++
content/resources/xsd/build-cache-diff-1.0.0.xsd | 100 +++
content/resources/xsd/build-cache-report-1.0.0.xsd | 100 +++
4 files changed, 1301 insertions(+)
diff --git a/content/resources/xsd/build-cache-build-1.0.0.xsd b/content/resources/xsd/build-cache-build-1.0.0.xsd
new file mode 100644
index 00000000..34800e70
--- /dev/null
+++ b/content/resources/xsd/build-cache-build-1.0.0.xsd
@@ -0,0 +1,293 @@
+<?xml version="1.0"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!-- =================== DO NOT EDIT THIS FILE ==================== -->
+<!-- Generated by Modello 2.0.0, -->
+<!-- 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.0.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-BUILD/1.0.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 name="goal" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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 name="attachedArtifact" minOccurs="0" maxOccurs="unbounded" type="Artifact"/>
+ </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 name="execution" minOccurs="0" maxOccurs="unbounded" type="CompletedExecution"/>
+ </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: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 name="item" minOccurs="0" maxOccurs="unbounded" type="DigestItem"/>
+ </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 name="property" minOccurs="0" maxOccurs="unbounded" type="PropertyValue"/>
+ </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.0.0.xsd b/content/resources/xsd/build-cache-config-1.0.0.xsd
new file mode 100644
index 00000000..5dcfac29
--- /dev/null
+++ b/content/resources/xsd/build-cache-config-1.0.0.xsd
@@ -0,0 +1,808 @@
+<?xml version="1.0"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!-- =================== DO NOT EDIT THIS FILE ==================== -->
+<!-- Generated by Modello 2.0.0, -->
+<!-- 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.0.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-CONFIG/1.0.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: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 name="plugin" minOccurs="0" maxOccurs="unbounded" type="PluginConfigurationScan"/>
+ </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 name="execution" minOccurs="0" maxOccurs="unbounded" type="ExecutionConfigurationScan"/>
+ </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 name="excludeProperty" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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 name="execId" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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 name="include" minOccurs="0" maxOccurs="unbounded" type="TagScanConfig"/>
+ </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 name="exclude" minOccurs="0" maxOccurs="unbounded" type="TagExclude"/>
+ </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 name="tagScanConfig" minOccurs="0" maxOccurs="unbounded" type="TagScanConfig"/>
+ </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: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:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="includes">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="Include"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="excludes">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="Exclude"/>
+ </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:annotation>
+ </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: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" 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="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 name="pattern" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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 name="plugin" minOccurs="0" maxOccurs="unbounded" type="PluginSet"/>
+ </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 name="execution" minOccurs="0" maxOccurs="unbounded" type="ExecutionIdsList"/>
+ </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 name="goalsList" minOccurs="0" maxOccurs="unbounded" type="GoalsList"/>
+ </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 name="goal" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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 name="execId" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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 name="plugin" minOccurs="0" maxOccurs="unbounded" type="GoalReconciliation"/>
+ </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 name="reconcile" minOccurs="0" maxOccurs="unbounded" type="TrackedProperty"/>
+ </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 name="log" minOccurs="0" maxOccurs="unbounded" type="PropertyName"/>
+ </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 name="nolog" minOccurs="0" maxOccurs="unbounded" type="PropertyName"/>
+ </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, 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="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 name="debug" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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: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 name="scanProfile" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </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:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="dirNames">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">Directory name in build output directory to attach to cached artifacts</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="dirName" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/build-cache-diff-1.0.0.xsd b/content/resources/xsd/build-cache-diff-1.0.0.xsd
new file mode 100644
index 00000000..445e57d7
--- /dev/null
+++ b/content/resources/xsd/build-cache-diff-1.0.0.xsd
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!-- =================== DO NOT EDIT THIS FILE ==================== -->
+<!-- Generated by Modello 2.0.0, -->
+<!-- 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.0.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-DIFF/1.0.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 name="mismatch" minOccurs="0" maxOccurs="unbounded" type="Mismatch"/>
+ </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 name="detail" minOccurs="0" maxOccurs="unbounded" type="MismatchDetail"/>
+ </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.0.0.xsd b/content/resources/xsd/build-cache-report-1.0.0.xsd
new file mode 100644
index 00000000..dc278895
--- /dev/null
+++ b/content/resources/xsd/build-cache-report-1.0.0.xsd
@@ -0,0 +1,100 @@
+<?xml version="1.0"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!-- =================== DO NOT EDIT THIS FILE ==================== -->
+<!-- Generated by Modello 2.0.0, -->
+<!-- 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.0.0" targetNamespace="http://maven.apache.org/BUILD-CACHE-REPORT/1.0.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 name="project" minOccurs="0" maxOccurs="unbounded" type="ProjectReport"/>
+ </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