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 2025/06/26 05:05:24 UTC
(maven-site) branch master updated: Release Maven 4.0.0-rc-4
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 a29b9901 Release Maven 4.0.0-rc-4
a29b9901 is described below
commit a29b9901b51c0e6f9fbadc12b917fc4a08c088e1
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Jun 26 07:05:13 2025 +0200
Release Maven 4.0.0-rc-4
---
content/markdown/docs/4.0.0-rc-4/release-notes.md | 222 ++
content/markdown/docs/history.md.vm | 3 +-
content/resources/xsd/.htaccess | 15 +-
.../resources/xsd/core-extensions-1.2.0-rc-4.xsd | 85 +
content/resources/xsd/lifecycle-2.0.0-rc-4.xsd | 145 +
content/resources/xsd/maven-4.1.0-rc-4.xsd | 2791 ++++++++++++++++++++
content/resources/xsd/plugin-2.0.0-rc-4.xsd | 413 +++
.../xsd/repository-metadata-1.2.0-rc-4.xsd | 214 ++
content/resources/xsd/settings-2.0.0-rc-4.xsd | 739 ++++++
content/resources/xsd/toolchains-1.2.0-rc-4.xsd | 101 +
pom.xml | 2 +-
11 files changed, 4722 insertions(+), 8 deletions(-)
diff --git a/content/markdown/docs/4.0.0-rc-4/release-notes.md b/content/markdown/docs/4.0.0-rc-4/release-notes.md
new file mode 100644
index 00000000..1cd45c74
--- /dev/null
+++ b/content/markdown/docs/4.0.0-rc-4/release-notes.md
@@ -0,0 +1,222 @@
+# Apache Maven 4.0.0-rc-4 Release Notes
+
+Apache Maven 4.0.0-rc-4 is available for download.
+
+Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
+
+The core release is independent of plugin releases. Further releases of plugins will be made separately.
+
+If you have any questions, please consult:
+
+- the web site: https://maven.apache.org/
+- the maven-user mailing list: https://maven.apache.org/mailing-lists.html
+- the reference documentation: https://maven.apache.org/ref/4.0.0-rc-4/
+
+## Maven 4.x
+
+Maven 4.x is a major release that includes significant improvements and changes.
+Please refer to the [Maven 4.x documentation](https://maven.apache.org/ref/4.0.0-rc-4/) for detailed information about new features and migration guidance.
+
+### Important Notes
+
+- This is a release candidate version intended for testing and feedback
+- Please report any issues to the Maven JIRA: https://issues.apache.org/jira/projects/MNG
+- For production use, consider the stability and compatibility requirements of your project
+
+## Changelog
+
+Maven 4.0.0-rc-4 aims at being the last release candidate before Maven 4.0.0 GA. We'll focus on fixing critical bugs raised before GA.
+Worth mentioning is the new upgrade tool which can be used to fix your `pom.xml` files and make them usable in Maven 4.
+
+## 🚀 New features and improvements
+
+- [[MNG-8765]](https://issues.apache.org/jira/browse/MNG-8765) - Maven Upgrade Tool ([#2407](https://github.com/apache/maven/pull/2407)) @gnodet
+- Maven4 "legacy" mode and more ([#2380](https://github.com/apache/maven/pull/2380)) @cstamas
+- [[MNG-8759]](https://issues.apache.org/jira/browse/MNG-8759) - Restore toString method in DefaultJavaToolchain ([#2411](https://github.com/apache/maven/pull/2411)) @slawekjaranowski
+- [[MNG-8572]](https://issues.apache.org/jira/browse/MNG-8572) - Support DI beans in build extensions ([#2274](https://github.com/apache/maven/pull/2274)) @gnodet
+- [[MNG-8717]](https://issues.apache.org/jira/browse/MNG-8717) - Remove maven-plugin-plugin:addPluginArtifactMetadata from default binding ([#2294](https://github.com/apache/maven/pull/2294)) @slawekjaranowski
+
+## 🐛 Bug Fixes
+
+- Deduplicate filtered dependency graph ([#2493](https://github.com/apache/maven/pull/2493)) @alzimmermsft
+- User properties are not interpolated for paths ([#2480](https://github.com/apache/maven/pull/2480)) @cstamas
+- Move project mutation inside project lock ([#2474](https://github.com/apache/maven/pull/2474)) @cstamas
+- [[MNG-8736]](https://issues.apache.org/jira/browse/MNG-8736) - Fix concurrency issue in model building with profile activation ([#2378](https://github.com/apache/maven/pull/2378)) @gnodet
+- [[MNG-8767]](https://issues.apache.org/jira/browse/MNG-8767) - Add suppressed exceptions to BatchRequestException in AbstractRequestCache ([#2431](https://github.com/apache/maven/pull/2431)) @gnodet
+- [[MNG-8746]](https://issues.apache.org/jira/browse/MNG-8746) - Preserve property insertion order in WrapperProperties ([#2404](https://github.com/apache/maven/pull/2404)) @gnodet
+- [[MNG-8764]](https://issues.apache.org/jira/browse/MNG-8764) - Sort injected lists by @Priority annotation ([#2425](https://github.com/apache/maven/pull/2425)) @gnodet
+- [[MNG-8761]](https://issues.apache.org/jira/browse/MNG-8761) - Add Maven 3 MavenToolchainsXpp3Reader/Writer ([#2412](https://github.com/apache/maven/pull/2412)) @slawekjaranowski
+- [[MNG-8729]](https://issues.apache.org/jira/browse/MNG-8729) - Use correct `outputStream` destination; `request` instead of `path` in `DefaultPluginXmlFactory#write` ([#2312](https://github.com/apache/maven/pull/2312)) @Pankraz76
+- [[MNG-8720]](https://issues.apache.org/jira/browse/MNG-8720) - Fix for symlinked project directory ([#2289](https://github.com/apache/maven/pull/2289)) @cstamas
+- [[MNG-8653]](https://issues.apache.org/jira/browse/MNG-8653) - Fix 'all' phase and add 'each' phase ([#2191](https://github.com/apache/maven/pull/2191)) @gnodet
+- [[MNG-5668]](https://issues.apache.org/jira/browse/MNG-5668) - Execute after:* phases when build fails ([#2195](https://github.com/apache/maven/pull/2195)) @gnodet
+- [[MNG-8629]](https://issues.apache.org/jira/browse/MNG-8629) - bugfix: If POM has parent and repository stanza, it is used un-interpolated ([#2192](https://github.com/apache/maven/pull/2192)) @cstamas
+- [[MNG-8645]](https://issues.apache.org/jira/browse/MNG-8645) - Fix dependency management section of consumer POM ([#2183](https://github.com/apache/maven/pull/2183)) @gnodet
+- [[MNG-8624]](https://issues.apache.org/jira/browse/MNG-8624) - Fix dependency not being set correctly for unsupported types ([#2153](https://github.com/apache/maven/pull/2153)) @gnodet
+- Fix ITs referencing rc-3-SNAPSHOT ([#2164](https://github.com/apache/maven/pull/2164)) @gnodet
+- [[MNG-8620]](https://issues.apache.org/jira/browse/MNG-8620) - Fix links in SVG ([#2152](https://github.com/apache/maven/pull/2152)) @kwin
+
+## 📝 Documentation updates
+
+- [[MNG-8731]](https://issues.apache.org/jira/browse/MNG-8731) - Use https for xsi:schemaLocation in generated descriptors ([#2341](https://github.com/apache/maven/pull/2341)) @slawekjaranowski
+
+## 👻 Maintenance
+
+- Fix integration tests to use correct Maven version instead of hardcoded 2.1-SNAPSHOT ([#2476](https://github.com/apache/maven/pull/2476)) @gnodet
+- Use local repository in tests ([#2485](https://github.com/apache/maven/pull/2485)) @slawekjaranowski
+- Refactor WrapperProperties template to remove caching and simplify implementation ([#2436](https://github.com/apache/maven/pull/2436)) @gnodet
+- Ban "plain" Guice; downgrade it to 5.1.0 ([#2472](https://github.com/apache/maven/pull/2472)) @cstamas
+- Unfurl CLI ([#2465](https://github.com/apache/maven/pull/2465)) @cstamas
+- Don't ignore SVG files ([#2435](https://github.com/apache/maven/pull/2435)) @elharo
+- Update CONTRIBUTING after GitHub issues enabled ([#2448](https://github.com/apache/maven/pull/2448)) @slawekjaranowski
+- Remove extra variable ([#2398](https://github.com/apache/maven/pull/2398)) @elharo
+- Enable Github Issues ([#2413](https://github.com/apache/maven/pull/2413)) @Bukama
+- [S1161] Add missing @Override to overriding and implementing methods ([#2402](https://github.com/apache/maven/pull/2402)) @Pankraz76
+- use `try-with-resources` statement in `LookupWagonMojo` ([#2426](https://github.com/apache/maven/pull/2426)) @Pankraz76
+- Add UT for cache in FilteredProjectDependencyGraphTest ([#2394](https://github.com/apache/maven/pull/2394)) @slawekjaranowski
+- [[MNG-8764]](https://issues.apache.org/jira/browse/MNG-8764) - centralize domain comparison logic `Binding#getPriorityComparator` ([#2428](https://github.com/apache/maven/pull/2428)) @Pankraz76
+- evolve `Disabled` to `DisabledOnOs(WINDOWS)` ([#2423](https://github.com/apache/maven/pull/2423)) @Pankraz76
+- use `try-with-resources` statement in `CatchMojo` ([#2424](https://github.com/apache/maven/pull/2424)) @Pankraz76
+- chore: resolve unused `Binding#getDisplayString` ([#2429](https://github.com/apache/maven/pull/2429)) @Pankraz76
+- Remove ignored method call ([#2399](https://github.com/apache/maven/pull/2399)) @elharo
+- [[MNG-8750]](https://issues.apache.org/jira/browse/MNG-8750) - Delete unused interface ([#2388](https://github.com/apache/maven/pull/2388)) @elharo
+- chore: resolve false negative suppression `@SuppressWarnings("checkstyle:UnusedLocalVariable")` ([#2369](https://github.com/apache/maven/pull/2369)) @Pankraz76
+- [chore] Modernize codebase with Java improvements - Replace custom null checks with `Objects.requireNonNull` ([#2290](https://github.com/apache/maven/pull/2290)) @Pankraz76
+- Symbolic change (no issue) ([#2383](https://github.com/apache/maven/pull/2383)) @cstamas
+- [[MNG-8713]](https://issues.apache.org/jira/browse/MNG-8713) - SourceRoot.directory() default value should include the module when present ([#2278](https://github.com/apache/maven/pull/2278)) @desruisseaux
+- [[MNG-8727]](https://issues.apache.org/jira/browse/MNG-8727) - Prepare for Java 24 ([#2328](https://github.com/apache/maven/pull/2328)) @cstamas
+- [[MNG-8686]](https://issues.apache.org/jira/browse/MNG-8686) - Add `SourceRoot.matcher(boolean)` method ([#2236](https://github.com/apache/maven/pull/2236)) @desruisseaux
+- Remove unused private methods ([#2310](https://github.com/apache/maven/pull/2310)) @Pankraz76
+- Improve invoker test ([#2308](https://github.com/apache/maven/pull/2308)) @cstamas
+- Pull #2282: Add project icon for `IntelliJ IDEA` ([#2283](https://github.com/apache/maven/pull/2283)) @Pankraz76
+- [[MNG-8718]](https://issues.apache.org/jira/browse/MNG-8718) - Restore Maven 3 compat: ProjectBuilder is unusable for legacy code ([#2285](https://github.com/apache/maven/pull/2285)) @cstamas
+- Test MavenITmng7587Jsr330 should be executed on every JDK ([#2298](https://github.com/apache/maven/pull/2298)) @slawekjaranowski
+- [[MNG-8719]](https://issues.apache.org/jira/browse/MNG-8719) - Restore Maven3 compat: model setInherited(boolean) ([#2288](https://github.com/apache/maven/pull/2288)) @cstamas
+- [[MNG-8614]](https://issues.apache.org/jira/browse/MNG-8614) - Maven Sisu in Maven 4 same as in Maven 3 ([#2284](https://github.com/apache/maven/pull/2284)) @cstamas
+- [[MNG-8712]](https://issues.apache.org/jira/browse/MNG-8712) - dependency version is a requirement, not effective ([#2286](https://github.com/apache/maven/pull/2286)) @hboutemy
+- [[MNG-8670]](https://issues.apache.org/jira/browse/MNG-8670) - Fix concurrent builder missing/wrong project events ([#2251](https://github.com/apache/maven/pull/2251)) @oehme
+- [[MNG-8674]](https://issues.apache.org/jira/browse/MNG-8674) - Deprecate mergeId in the Maven 3 model and remove it in the new model ([#2233](https://github.com/apache/maven/pull/2233)) @gnodet
+- [[MNG-8694]](https://issues.apache.org/jira/browse/MNG-8694) - Fix version interpolation and ternary operator ([#2272](https://github.com/apache/maven/pull/2272)) @kamilkrzywanski
+- [[MNGSITE-393]](https://issues.apache.org/jira/browse/MNGSITE-393) - Remove Maven 1 and 2 references ([#2276](https://github.com/apache/maven/pull/2276)) @elharo
+- Remove unneeded toString and valueOf calls ([#2230](https://github.com/apache/maven/pull/2230)) @elharo
+- Drop unused assembly exclude ([#2266](https://github.com/apache/maven/pull/2266)) @cstamas
+- aether repository system isn't used ([#2237](https://github.com/apache/maven/pull/2237)) @elharo
+- remove unused field ([#2238](https://github.com/apache/maven/pull/2238)) @elharo
+- Cleanup extra semicolons ([#2229](https://github.com/apache/maven/pull/2229)) @elharo
+- [[MNG-8676]](https://issues.apache.org/jira/browse/MNG-8676) - Improve model builder error messages ([#2257](https://github.com/apache/maven/pull/2257)) @cstamas
+- Avoid warning about unthrown exception ([#2217](https://github.com/apache/maven/pull/2217)) @elharo
+- [[MNG-8687]](https://issues.apache.org/jira/browse/MNG-8687) - Restore ability to run on JIMFS ([#2256](https://github.com/apache/maven/pull/2256)) @cstamas
+- [[MNG-8673]](https://issues.apache.org/jira/browse/MNG-8673) - SourceRoot includes and excludes should be String ([#2232](https://github.com/apache/maven/pull/2232)) @gnodet
+- [[MNG-8675]](https://issues.apache.org/jira/browse/MNG-8675) - Correctly deprecate Resource in the model ([#2234](https://github.com/apache/maven/pull/2234)) @gnodet
+- [[MNG-8685]](https://issues.apache.org/jira/browse/MNG-8685) - Better support for CI systems ([#2254](https://github.com/apache/maven/pull/2254)) @cstamas
+- Add types for processor annotation path ([#2239](https://github.com/apache/maven/pull/2239)) @desruisseaux
+- [[MNG-8679]](https://issues.apache.org/jira/browse/MNG-8679) - Align superpom with mvn3 ([#2246](https://github.com/apache/maven/pull/2246)) @cstamas
+- Avoid exposing non-public type outside its scope ([#2220](https://github.com/apache/maven/pull/2220)) @elharo
+- Grammar and typo fixes in javadoc and other comments ([#2222](https://github.com/apache/maven/pull/2222)) @elharo
+- Remove methods that duplicate superclass methods ([#2211](https://github.com/apache/maven/pull/2211)) @elharo
+- [[MNG-8637]](https://issues.apache.org/jira/browse/MNG-8637) - Pull out Standalone API from UTs ([#2226](https://github.com/apache/maven/pull/2226)) @gnodet
+- [[MRESOLVER-673]](https://issues.apache.org/jira/browse/MRESOLVER-673) - Improve model validator error messages ([#2227](https://github.com/apache/maven/pull/2227)) @cstamas
+- [[MNG-8660]](https://issues.apache.org/jira/browse/MNG-8660) - Decouple legacy prompter from implementation details ([#2196](https://github.com/apache/maven/pull/2196)) @oehme
+- Add missing Javadoc to API subprojects ([#2218](https://github.com/apache/maven/pull/2218)) @gnodet
+- prefer primitive type ([#2216](https://github.com/apache/maven/pull/2216)) @elharo
+- autobox ([#2223](https://github.com/apache/maven/pull/2223)) @elharo
+- No catch block needed when rethrowing same exception ([#2210](https://github.com/apache/maven/pull/2210)) @elharo
+- [[MNG-3558]](https://issues.apache.org/jira/browse/MNG-3558) - Ensure properties can be escaped ([#2206](https://github.com/apache/maven/pull/2206)) @gnodet
+- [[MNG-8669]](https://issues.apache.org/jira/browse/MNG-8669) - Add missing context ([#2224](https://github.com/apache/maven/pull/2224)) @cstamas
+- [[MNG-8662]](https://issues.apache.org/jira/browse/MNG-8662) - Add missing methods for removing project source roots ([#2205](https://github.com/apache/maven/pull/2205)) @gnodet
+- [[MNG-4559]](https://issues.apache.org/jira/browse/MNG-4559) - Support spaces in jvm.config ([#2213](https://github.com/apache/maven/pull/2213)) @gnodet
+- prefer isEmpty ([#2215](https://github.com/apache/maven/pull/2215)) @elharo
+- [CI] Disable Mimir JGroups node ([#2212](https://github.com/apache/maven/pull/2212)) @cstamas
+- Access static fields in a static way ([#2209](https://github.com/apache/maven/pull/2209)) @elharo
+- Make maven-cli module tests use Mimir as well ([#2207](https://github.com/apache/maven/pull/2207)) @cstamas
+- Remove a few thousand lines of commented and obsolete code ([#2200](https://github.com/apache/maven/pull/2200)) @elharo
+- minor cleanups ([#2199](https://github.com/apache/maven/pull/2199)) @elharo
+- [[MNG-8467]](https://issues.apache.org/jira/browse/MNG-8467) - Add links to configuration pages in index.xml ([#2201](https://github.com/apache/maven/pull/2201)) @gnodet
+- Add missing headers ([#2202](https://github.com/apache/maven/pull/2202)) @gnodet
+- [[MNG-8598]](https://issues.apache.org/jira/browse/MNG-8598) - Add support for MAVEN_PROJECTBASEDIR substitution in jvm.config ([#2194](https://github.com/apache/maven/pull/2194)) @gnodet
+- [[MNG-8548]](https://issues.apache.org/jira/browse/MNG-8548) - Add cycle detection to dependency injection ([#2197](https://github.com/apache/maven/pull/2197)) @gnodet
+- Remove some unnecessary statements ([#2190](https://github.com/apache/maven/pull/2190)) @elharo
+- Add test to suite ([#2198](https://github.com/apache/maven/pull/2198)) @gnodet
+- [[MNG-8642]](https://issues.apache.org/jira/browse/MNG-8642) - Integrate the testing framework inside Maven Core ([#2193](https://github.com/apache/maven/pull/2193)) @gnodet
+- [[MNG-8648]](https://issues.apache.org/jira/browse/MNG-8648) - Concurrent executor fires wrong ProjectStarted event ([#2189](https://github.com/apache/maven/pull/2189)) @oehme
+- [[MNG-8647]](https://issues.apache.org/jira/browse/MNG-8647) - Set the default source directory to `src/${scope}/${lang}` as per documentation ([#2180](https://github.com/apache/maven/pull/2180)) @desruisseaux
+- [[MNG-8646]](https://issues.apache.org/jira/browse/MNG-8646) - Make IT tests use "outer" Mimir caching as well ([#2176](https://github.com/apache/maven/pull/2176)) @cstamas
+- Remove redundant code ([#2188](https://github.com/apache/maven/pull/2188)) @elharo
+- Expected argument comes first in JUnit ([#2187](https://github.com/apache/maven/pull/2187)) @elharo
+- Reenable many old style tests ([#2182](https://github.com/apache/maven/pull/2182)) @elharo
+- [[MNG-8490]](https://issues.apache.org/jira/browse/MNG-8490) - Add an XmlService and a builder + implementation for XmlNode ([#2150](https://github.com/apache/maven/pull/2150)) @gnodet
+- requireNonNull ([#2181](https://github.com/apache/maven/pull/2181)) @elharo
+- Remove old symbolic link in ITmng8400 test ([#2178](https://github.com/apache/maven/pull/2178)) @slawekjaranowski
+- [[MNG-8612]](https://issues.apache.org/jira/browse/MNG-8612) - Document Node#asString and remove Version#asString and VersionConstraint#asString ([#2172](https://github.com/apache/maven/pull/2172)) @gnodet
+- [[MNG-8510]](https://issues.apache.org/jira/browse/MNG-8510) - Avoid duplicate Utils classes ([#2173](https://github.com/apache/maven/pull/2173)) @gnodet
+- [[MNG-8639]](https://issues.apache.org/jira/browse/MNG-8639) - Check namespaces when reading XML models ([#2170](https://github.com/apache/maven/pull/2170)) @gnodet
+- [[MNG-8511]](https://issues.apache.org/jira/browse/MNG-8511) - Explains the meaning of cling ([#2174](https://github.com/apache/maven/pull/2174)) @gnodet
+- [IT] Refactor executor ([#2175](https://github.com/apache/maven/pull/2175)) @cstamas
+- [[MNG-8633]](https://issues.apache.org/jira/browse/MNG-8633) - Initialize entities map lazily ([#2165](https://github.com/apache/maven/pull/2165)) @gnodet
+- Replace a `NullPointerException` by a more explicit error message ([#2160](https://github.com/apache/maven/pull/2160)) @desruisseaux
+- Restore Jenkins build for master ([#2151](https://github.com/apache/maven/pull/2151)) @olamy
+- [experiment] Mimir ([#2144](https://github.com/apache/maven/pull/2144)) @cstamas
+- [[MNG-8615] [MNG-8616]](https://issues.apache.org/jira/browse/MNG-8615] [MNG-8616) - Maven core extensions handling improvements ([#2147](https://github.com/apache/maven/pull/2147)) @cstamas
+- Minor Javadoc cleanup ([#2126](https://github.com/apache/maven/pull/2126)) @elharo
+- [[MNG-8613]](https://issues.apache.org/jira/browse/MNG-8613) - Copy edit dependency javadocs ([#2143](https://github.com/apache/maven/pull/2143)) @elharo
+
+## 🔧 Build
+
+- Improve configuration for dependabot in 3.x branch ([#2447](https://github.com/apache/maven/pull/2447)) @slawekjaranowski
+- Remove branch after merge ([#2323](https://github.com/apache/maven/pull/2323)) @slawekjaranowski
+
+## 📦 Dependency updates
+
+- Bump xmlunitVersion from 2.10.2 to 2.10.3 ([#2501](https://github.com/apache/maven/pull/2501)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit:junit-bom from 5.13.0 to 5.13.1 ([#2459](https://github.com/apache/maven/pull/2459)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit.jupiter:junit-jupiter from 5.13.0 to 5.13.1 ([#2460](https://github.com/apache/maven/pull/2460)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.codehaus.mojo:build-helper-maven-plugin from 3.6.0 to 3.6.1 ([#2433](https://github.com/apache/maven/pull/2433)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit.jupiter:junit-jupiter from 5.12.2 to 5.13.0 ([#2420](https://github.com/apache/maven/pull/2420)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump net.sourceforge.pmd:pmd-core from 7.13.0 to 7.14.0 ([#2421](https://github.com/apache/maven/pull/2421)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit:junit-bom from 5.12.2 to 5.13.0 ([#2422](https://github.com/apache/maven/pull/2422)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Update Mimir to 0.7.8 ([#2416](https://github.com/apache/maven/pull/2416)) @cstamas
+- Bump org.codehaus.mojo:exec-maven-plugin from 3.5.0 to 3.5.1 ([#2397](https://github.com/apache/maven/pull/2397)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump jlineVersion from 3.30.3 to 3.30.4 ([#2405](https://github.com/apache/maven/pull/2405)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump com.fasterxml.woodstox:woodstox-core from 7.1.0 to 7.1.1 ([#2409](https://github.com/apache/maven/pull/2409)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Upgrade Maven Bom Builder Plugin ([#2408](https://github.com/apache/maven/pull/2408)) @cstamas
+- [[MNG-8737]](https://issues.apache.org/jira/browse/MNG-8737) - Bump xmlunitVersion from 2.10.1 to 2.10.2 ([#2391](https://github.com/apache/maven/pull/2391)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8740][MNG-8733]](https://issues.apache.org/jira/browse/MNG-8740][MNG-8733) - Bump jlineVersion from 3.30.0 to 3.30.3 ([#2379](https://github.com/apache/maven/pull/2379)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8739]](https://issues.apache.org/jira/browse/MNG-8739) - Bump net.sourceforge.pmd:pmd-core from 7.12.0 to 7.13.0 ([#2335](https://github.com/apache/maven/pull/2335)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8738]](https://issues.apache.org/jira/browse/MNG-8738) - Bump mockitoVersion from 5.17.0 to 5.18.0 ([#2362](https://github.com/apache/maven/pull/2362)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8737]](https://issues.apache.org/jira/browse/MNG-8737) - Bump xmlunitVersion from 2.10.0 to 2.10.1 ([#2355](https://github.com/apache/maven/pull/2355)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8728]](https://issues.apache.org/jira/browse/MNG-8728) - Update Eclipse Sisu to 0.9.0.M4 ([#2358](https://github.com/apache/maven/pull/2358)) @cstamas
+- [[MNG-8732]](https://issues.apache.org/jira/browse/MNG-8732) - Bump Resolver to 2.0.9 ([#2352](https://github.com/apache/maven/pull/2352)) @cstamas
+- [[MNG-8726]](https://issues.apache.org/jira/browse/MNG-8726) - Bump jlineVersion from 3.29.0 to 3.30.0 ([#2325](https://github.com/apache/maven/pull/2325)) @cstamas
+- Bump org.eclipse.jetty:jetty-server from 9.4.55.v20240627 to 9.4.56.v20240826 in /its/core-it-suite ([#2305](https://github.com/apache/maven/pull/2305)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump commons-jxpath:commons-jxpath from 1.3 to 1.4.0 ([#2267](https://github.com/apache/maven/pull/2267)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Update Maveniverse stuff ([#2269](https://github.com/apache/maven/pull/2269)) @cstamas
+- Bump com.google.guava:guava from 33.4.7-jre to 33.4.8-jre ([#2265](https://github.com/apache/maven/pull/2265)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.codehaus.plexus:plexus-velocity from 2.2.0 to 2.2.1 ([#2259](https://github.com/apache/maven/pull/2259)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit:junit-bom from 5.12.1 to 5.12.2 ([#2260](https://github.com/apache/maven/pull/2260)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump commons-io:commons-io from 2.18.0 to 2.19.0 ([#2261](https://github.com/apache/maven/pull/2261)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit.jupiter:junit-jupiter from 5.11.4 to 5.12.2 ([#2262](https://github.com/apache/maven/pull/2262)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump com.google.guava:guava from 33.4.6-jre to 33.4.7-jre ([#2263](https://github.com/apache/maven/pull/2263)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8677]](https://issues.apache.org/jira/browse/MNG-8677) - Bump to Resolver 2.0.8 and more ([#2158](https://github.com/apache/maven/pull/2158)) @cstamas
+- Bump org.codehaus.plexus:plexus-classworlds from 2.8.0 to 2.9.0 ([#2247](https://github.com/apache/maven/pull/2247)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump io.github.olamy.maven.plugins:jacoco-aggregator-maven-plugin from 1.0.1 to 1.0.2 ([#2248](https://github.com/apache/maven/pull/2248)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.codehaus.plexus:plexus-testing from 1.4.0 to 1.5.0 ([#2249](https://github.com/apache/maven/pull/2249)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.codehaus.plexus:plexus-interactivity-api from 1.3 to 1.4 ([#2250](https://github.com/apache/maven/pull/2250)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.codehaus.plexus:plexus-xml from 4.0.4 to 4.1.0 ([#2242](https://github.com/apache/maven/pull/2242)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump io.github.olamy.maven.plugins:jacoco-aggregator-maven-plugin from 1.0.0 to 1.0.1 ([#2244](https://github.com/apache/maven/pull/2244)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump mockitoVersion from 5.16.1 to 5.17.0 ([#2245](https://github.com/apache/maven/pull/2245)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.codehaus.plexus:plexus-interpolation from 1.27 to 1.28 ([#2243](https://github.com/apache/maven/pull/2243)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.jacoco:jacoco-maven-plugin from 0.8.12 to 0.8.13 ([#2225](https://github.com/apache/maven/pull/2225)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump net.bytebuddy:byte-buddy from 1.17.4 to 1.17.5 ([#2214](https://github.com/apache/maven/pull/2214)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8663]](https://issues.apache.org/jira/browse/MNG-8663) - Bump asmVersion from 9.7.1 to 9.8 ([#2204](https://github.com/apache/maven/pull/2204)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump Mimir from 0.4.0 to 0.4.1 ([#2203](https://github.com/apache/maven/pull/2203)) @cstamas
+- Bump com.google.guava:guava from 33.4.5-jre to 33.4.6-jre ([#2186](https://github.com/apache/maven/pull/2186)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump net.bytebuddy:byte-buddy from 1.17.2 to 1.17.4 ([#2179](https://github.com/apache/maven/pull/2179)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8641]](https://issues.apache.org/jira/browse/MNG-8641) - Bump org.apache.maven:maven-parent from 43 to 44 ([#2162](https://github.com/apache/maven/pull/2162)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump com.google.guava:guava from 33.4.0-jre to 33.4.5-jre ([#2166](https://github.com/apache/maven/pull/2166)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- [[MNG-8630]](https://issues.apache.org/jira/browse/MNG-8630) - Bump ch.qos.logback:logback-classic from 1.5.17 to 1.5.18 ([#2161](https://github.com/apache/maven/pull/2161)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump mockitoVersion from 5.16.0 to 5.16.1 ([#2156](https://github.com/apache/maven/pull/2156)) @[dependabot[bot]](https://github.com/apps/dependabot)
+- Bump org.junit:junit-bom from 5.12.0 to 5.12.1 ([#2155](https://github.com/apache/maven/pull/2155)) @[dependabot[bot]](https://github.com/apps/dependabot)
+
+## Full changelog
+
+For a full list of changes, please refer to the [GitHub release page](https://github.com/apache/maven/releases/tag/maven-4.0.0-rc-4).
diff --git a/content/markdown/docs/history.md.vm b/content/markdown/docs/history.md.vm
index ce5c9159..3406c272 100644
--- a/content/markdown/docs/history.md.vm
+++ b/content/markdown/docs/history.md.vm
@@ -75,7 +75,8 @@ $esc.h$esc.h Maven 4.0+ (not yet GA)
<!-- release( date version announce latest-minor jdk rowspan ) -->
<!-- The following two lines needs to be fixed in x days if the archive picks up the announcement mail. -->
-#release( "2025-03-10" "4.0.0-rc-3" "https://lists.apache.org/thread/x4mvlyx6py6r0wjz5hl871vlvbv6vn94" "true" "Java 17" "7" )
+#release( "TBD" "4.0.0-rc-4" "TBD" "true" "Java 17" "8" )
+#release( "2025-03-10" "4.0.0-rc-3" "https://lists.apache.org/thread/x4mvlyx6py6r0wjz5hl871vlvbv6vn94" "" "" "" )
#release( "2024-12-14" "4.0.0-rc-2" "https://lists.apache.org/thread/82dzfcbr4nc941848k5nn988sfkz3z6t" "" "" "" )
#release( "2024-11-28" "4.0.0-rc-1" "https://lists.apache.org/thread/ddr4q2r642mxpg0w5h6zt2o1xkdyk0w5" "" "" "" )
#release( "2024-10-22" "4.0.0-beta-5" "https://lists.apache.org/thread/c1cq43y6onn144gkfmhwg82z41fb35sp" "" "" "" )
diff --git a/content/resources/xsd/.htaccess b/content/resources/xsd/.htaccess
index af8ad79d..c298e322 100644
--- a/content/resources/xsd/.htaccess
+++ b/content/resources/xsd/.htaccess
@@ -1,8 +1,11 @@
-Redirect /xsd/core-extensions-1.2.0.xsd /xsd/core-extensions-1.2.0-rc-3.xsd
-Redirect /xsd/lifecycle-2.0.0.xsd /xsd/lifecycle-2.0.0-rc-3.xsd
-Redirect /xsd/maven-4.1.0.xsd /xsd/maven-4.1.0-rc-3.xsd
-Redirect /xsd/plugin-2.0.0.xsd /xsd/plugin-2.0.0-rc-3.xsd
-Redirect /xsd/repository-metadata-1.2.0.xsd /xsd/repository-metadata-1.2.0-rc-3.xsd
-Redirect /xsd/settings-2.0.0.xsd /xsd/settings-2.0.0-rc-3.xsd
+# Updated for Maven 4.0.0-rc-4 (6 updated, 1 added)
+Redirect /xsd/core-extensions-1.2.0.xsd /xsd/core-extensions-1.2.0-rc-4.xsd
+Redirect /xsd/lifecycle-2.0.0.xsd /xsd/lifecycle-2.0.0-rc-4.xsd
+Redirect /xsd/maven-4.1.0.xsd /xsd/maven-4.1.0-rc-4.xsd
+Redirect /xsd/plugin-2.0.0.xsd /xsd/plugin-2.0.0-rc-4.xsd
+Redirect /xsd/repository-metadata-1.2.0.xsd /xsd/repository-metadata-1.2.0-rc-4.xsd
+Redirect /xsd/settings-2.0.0.xsd /xsd/settings-2.0.0-rc-4.xsd
Redirect /xsd/toolchains-1.1.0.xsd /xsd/toolchains-1.1.0-rc-3.xsd
+
+Redirect /xsd/toolchains-1.2.0.xsd /xsd/toolchains-1.2.0-rc-4.xsd
diff --git a/content/resources/xsd/core-extensions-1.2.0-rc-4.xsd b/content/resources/xsd/core-extensions-1.2.0-rc-4.xsd
new file mode 100644
index 00000000..fc575eb0
--- /dev/null
+++ b/content/resources/xsd/core-extensions-1.2.0-rc-4.xsd
@@ -0,0 +1,85 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/EXTENSIONS/1.2.0" targetNamespace="http://maven.apache.org/EXTENSIONS/1.2.0">
+ <xs:element name="extensions" type="CoreExtensions">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Extensions to load.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="CoreExtensions">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Extensions to load.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="extension" type="CoreExtension" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">A set of build extensions to use from this project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CoreExtension">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes a build extension to utilise.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The group ID of the extension's artifact.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact ID of the extension.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The version of the extension.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="classLoadingStrategy" type="xs:string" default="self-first">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The class loading strategy: 'self-first' (the default), 'parent-first' (loads classes from the parent, then from the extension) or 'plugin' (follows the rules from extensions defined as plugins).</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">1.2.0+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/lifecycle-2.0.0-rc-4.xsd b/content/resources/xsd/lifecycle-2.0.0-rc-4.xsd
new file mode 100644
index 00000000..a509c16f
--- /dev/null
+++ b/content/resources/xsd/lifecycle-2.0.0-rc-4.xsd
@@ -0,0 +1,145 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/LIFECYCLE/2.0.0" targetNamespace="http://maven.apache.org/LIFECYCLE/2.0.0">
+ <xs:element name="lifecycles" type="LifecycleConfiguration">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Root element of the {@code lifecycle.xml} file.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="LifecycleConfiguration">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Root element of the {@code lifecycle.xml} file.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="lifecycle" type="Lifecycle" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Lifecycle">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">A custom lifecycle mapping definition.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The ID of this lifecycle, for identification in the mojo descriptor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="phases">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The phase mappings for this lifecycle.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Phase" name="phase" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Phase">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">A phase mapping definition.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The ID of this phase, e.g., {@code generate-sources}.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="executions">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The goals to execute within the phase.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Execution" name="execution" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Configuration to pass to all goals run in this phase.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ <xs:attribute name="executionPoint" type="xs:string" default="" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">If specified, identifies this phase as a dynamic phase to decorate the specified phase id, e.g. {@code after} or {@code before}.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="priority" type="xs:int" default="0" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">If specified, identifies a within phase prioritization of executions.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="Execution">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">A set of goals to execute.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Configuration to pass to the goals.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="goals">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The goals to execute.</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:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/maven-4.1.0-rc-4.xsd b/content/resources/xsd/maven-4.1.0-rc-4.xsd
new file mode 100644
index 00000000..c093cfd2
--- /dev/null
+++ b/content/resources/xsd/maven-4.1.0-rc-4.xsd
@@ -0,0 +1,2791 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/POM/4.1.0" targetNamespace="http://maven.apache.org/POM/4.1.0">
+ <xs:element name="project" type="Model">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <project>} element is the root of the descriptor.
+ The following table lists all of the possible child elements.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="Model">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <project>} element is the root of the descriptor.
+ The following table lists all of the possible child elements.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="modelVersion" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Declares to which version of project descriptor this POM conforms.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="parent" type="Parent">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The location of the parent project, if one exists. Values from the parent
+ project will be the default for this project if they are left unspecified. The location
+ is given as a group ID, artifact ID and version.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A universally unique identifier for a project. It is normal to
+ use a fully-qualified package name to distinguish it from other
+ projects with a similar name (eg. {@code org.apache.maven}).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The identifier for this artifact that is unique within the group given by the
+ group ID. An artifact is something that is either produced or used by a project.
+ Examples of artifacts produced by Maven for a project include: JARs, source and binary
+ distributions, and WARs.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The current version of the artifact produced by this project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="packaging" type="xs:string" default="jar">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The type of artifact this project produces, for example {@code jar},
+ {@code war},
+ {@code ear},
+ {@code pom}.
+ Plugins can create their own packaging, and
+ therefore their own packaging types,
+ so this list does not contain all possible types.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The full name of the project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">A detailed description of the project, used by Maven whenever it needs to
+ describe the project, such as on the website. While this element can be specified as
+ CDATA to enable the use of HTML tags within the description, it is discouraged to allow
+ plain text representation. If you need to modify the index page of the generated website,
+ you are able to specify your own instead of adjusting this text.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The URL to the project's homepage.
+ <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if
+ project's {@code child.project.url.inherit.append.path="false"}</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="inceptionYear" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The year of the project's inception, specified with 4 digits. This value is
+ used when generating copyright notices as well as being informational.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="organization" type="Organization">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">This element describes various attributes of the organization to which the
+ project belongs. These attributes are utilized when documentation is created (for
+ copyright notices and links).</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="licenses">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ This element describes all the licenses for this project.
+ Each license is described by a {@code license} element, which
+ is then described by additional elements.
+ Projects should only list the license(s) that applies to the project
+ and not the licenses that apply to dependencies.
+ If multiple licenses are listed, it is assumed that the user can select
+ any of them, not that they must accept all.
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="License" name="license" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="developers">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes the committers of a project.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Developer" name="developer" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="contributors">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes the contributors to a project that are not yet committers.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Contributor" name="contributor" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="mailingLists">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Contains information about a project's mailing lists.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="MailingList" name="mailingList" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="prerequisites" type="Prerequisites">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes the prerequisites in the build environment for this project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="modules">
+ <xs:annotation>
+ <xs:documentation source="version">[4.0.0 => 4.1.0]</xs:documentation>
+ <xs:documentation source="description">
+ @deprecated Use {@link #subprojects} instead.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="module" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="subprojects">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0</xs:documentation>
+ <xs:documentation source="description">The subprojects (formerly called modules) to build as a part of this
+ project. Each subproject listed is a relative path to the directory containing the subproject.
+ To be consistent with the way default URLs are calculated from parent, it is recommended
+ to have subproject names match artifact ids.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="subproject" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="scm" type="Scm">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Specification for the SCM used by the project, such as CVS, Subversion, etc.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="issueManagement" type="IssueManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The project's issue management system information.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="ciManagement" type="CiManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The project's continuous integration information.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="distributionManagement" type="DistributionManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Distribution information for a project that enables deployment of the site
+ and artifacts to remote web servers and repositories respectively.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="properties">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Properties that can be used throughout the POM as a substitution, and
+ are used as filters in resources if enabled.
+ The format is {@code <name>value</name>}.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="dependencyManagement" type="DependencyManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Default dependency information for projects that inherit from this one. The
+ dependencies in this section are not immediately resolved. Instead, when a POM derived
+ from this one declares a dependency described by a matching groupId and artifactId, the
+ version and other values from this section are used for that dependency if they were not
+ already specified.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="dependencies">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element describes all the dependencies associated with a project.
+ These dependencies are used to construct a classpath for your
+ project during the build process. They are automatically downloaded from the
+ repositories defined in this project.
+
+ @see <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">Dependency mechanism</a>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="repositories">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The lists of the remote repositories for discovering dependencies and
+ extensions.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginRepositories">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The lists of the remote repositories for discovering plugins for builds and
+ reports.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="build" type="Build">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Information required to build the project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="reporting" type="Reporting">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element includes the specification of report plugins to use
+ to generate the reports on the Maven-generated site.
+ These reports will be run when a user executes {@code mvn site}.
+ All the reports will be included in the navigation bar for browsing.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="profiles">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">A listing of project-local build profiles which will modify the build process
+ when activated.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Profile" name="profile" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ <xs:attribute name="child.project.url.inherit.append.path" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ When children inherit from project's url, append path or not? Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}
+ <p><b>Default value is</b>: {@code true}</p>
+ @since Maven 3.6.1
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="root" type="xs:boolean" default="false" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ Indicates that this project is the root project, located in the upper directory of the source tree.
+ This is the directory which may contain the .mvn directory.
+
+ @since Maven 4.0.0
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="preserve.model.version" type="xs:boolean" default="false" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ Indicates if the build POM for this project should be preserved or downgraded to the lowest
+ compatible version.
+ @since Maven 4.0.0
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="License">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes the licenses for this project. This is used to generate the license
+ page of the project's website, as well as being taken into consideration in other reporting
+ and validation. The licenses listed for the project are that of the project itself, and not
+ of dependencies.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The full legal name of the license.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The official url for the license text.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="distribution" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The primary method by which this project may be distributed.
+ <dl>
+ <dt>repo</dt>
+ <dd>may be downloaded from the Maven repository</dd>
+ <dt>manual</dt>
+ <dd>user must manually download and install the dependency.</dd>
+ </dl>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="comments" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Addendum information pertaining to this license.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="CiManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The {@code <ciManagement>} element contains information required to the
+ continuous integration system of the project.
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="system" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the continuous integration system, e.g. {@code continuum}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ URL for the continuous integration system used by the project if it has a web interface.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="notifiers">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Configuration for notifying developers/users when a build is unsuccessful,
+ including user information and notification mode.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Notifier" name="notifier" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Notifier">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Configures one method for notifying users/developers when a build breaks.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="type" type="xs:string" default="mail">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The mechanism used to deliver notifications.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="sendOnError" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Whether to send notifications on error.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="sendOnFailure" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Whether to send notifications on failure.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="sendOnSuccess" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Whether to send notifications on success.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="sendOnWarning" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Whether to send notifications on warning.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="address" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ @deprecated Where to send the notification to - eg email address.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">Extended configuration specific to this notifier goes here.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Scm">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <scm>} element contains information required to the SCM
+ (Source Control Management) of the project.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="connection" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The source control management system URL
+ that describes the repository and how to connect to the
+ repository.
+ This connection is read-only.
+ <br><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if
+ scm's {@code child.scm.connection.inherit.append.path="false"}
+ @see <a href="https://maven.apache.org/scm/scm-url-format.html">URL format</a>
+ @see <a href="https://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="developerConnection" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Just like {@code connection}, but for developers, i.e. this scm connection
+ will not be read only.
+ <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if
+ scm's {@code child.scm.developerConnection.inherit.append.path="false"}.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="tag" type="xs:string" default="HEAD">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The tag of current code. By default, it's set to HEAD during development.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.
+ <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if
+ scm's {@code child.scm.url.inherit.append.path="false"}</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ <xs:attribute name="child.scm.connection.inherit.append.path" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ When children inherit from scm connection, append path or not? Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}
+ <p><b>Default value is</b>: {@code true}</p>
+ @since Maven 3.6.1
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="child.scm.developerConnection.inherit.append.path" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ When children inherit from scm developer connection, append path or not? Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}
+ <p><b>Default value is</b>: {@code true}</p>
+ @since Maven 3.6.1
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="child.scm.url.inherit.append.path" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ When children inherit from scm url, append path or not? Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}
+ <br><b>Default value is</b>: {@code true}
+ @since Maven 3.6.1
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="IssueManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Information about the issue tracking (or bug tracking) system used to manage this
+ project.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="system" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The name of the issue management system, e.g. Bugzilla</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">URL for the issue management system used by the project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="DependencyManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Section for management of default dependency information for use in a group of
+ POMs.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="dependencies">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The dependencies specified here are not used until they are referenced in a
+ POM within the group. This allows the specification of a "standard" version for a
+ particular dependency.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Dependency">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The {@code <dependency>} element contains information about a dependency
+ of the project.
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The project group that produced the dependency, e.g.
+ {@code org.apache.maven}.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The unique id for an artifact produced by the project group, e.g.
+ {@code maven-artifact}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The version requirement of the dependency, e.g. {@code 3.2.1}. The actual version will be resolved based on the usage context.
+ Version requirement can also be specified as a range of versions, e.g. {@code [3.2.0,)}. This is discouraged as it may break <i>predictability</i> of resolved version.
+ See <a href="https://s.apache.org/dependency-version">dependency version requirement documentation</a>
+ and <a href="https://s.apache.org/transitive-dependencies-resolution">transitive dependencies resolution</a> for more details.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="type" type="xs:string" default="jar">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The type of dependency, that will be mapped to a file extension, an optional classifier, and a few other attributes.
+ Some examples are {@code jar}, {@code war}, {@code ejb-client}
+ and {@code test-jar}: see <a href="../maven-core/artifact-handlers.html">default
+ artifact handlers</a> for a list. New types can be defined by extensions, so this is not a complete list.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="classifier" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The classifier of the dependency. It is appended to
+ the filename after the version. This allows:
+ <ul>
+ <li>referring to attached artifact, for example {@code sources} and {@code javadoc}:
+ see <a href="../maven-core/artifact-handlers.html">default artifact handlers</a> for a list,</li>
+ <li>distinguishing two artifacts
+ that belong to the same POM but were built differently.
+ For example, {@code jdk14} and {@code jdk15}.</li>
+ </ul>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="scope" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The scope of the dependency - {@code compile}, {@code runtime},
+ {@code test}, {@code system}, and {@code provided}. Used to
+ calculate the various classpaths used for compilation, testing, and so on.
+ It also assists in determining which artifacts to include in a distribution of
+ this project. For more information, see
+ <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the
+ dependency mechanism</a>. The default scope is {@code compile}.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="systemPath" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ FOR SYSTEM SCOPE ONLY. Note that use of this property is <b>discouraged</b>
+ and may be replaced in later versions. This specifies the path on the filesystem
+ for this dependency.
+ Requires an absolute path for the value, not relative.
+ Use a property that gives the machine specific absolute path,
+ e.g. {@code ${java.home}}.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="exclusions">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Lists a set of artifacts that should be excluded from this dependency's
+ artifact list when it comes to calculating transitive dependencies.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Exclusion" name="exclusion" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="optional" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Indicates the dependency is optional for use of this library. While the
+ version of the dependency will be taken into account for dependency calculation if the
+ library is used elsewhere, it will not be passed on transitively. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code false}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Exclusion">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The {@code <exclusion>} element contains information required to exclude
+ an artifact to the project.
+ <p>
+ The {@code groupId} and {@code artifactId} fields are interpreted as glob patterns.
+
+ @see java.nio.file.FileSystem#getPathMatcher
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The group ID of the project to exclude.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact ID of the project to exclude.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Parent">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The {@code <parent>} element contains information required to locate the parent project from which
+ this project will inherit from.
+ <p><strong>Note:</strong> The children of this element are not interpolated and must be given as literal values.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The group id of the parent project to inherit from.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact id of the parent project to inherit from.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The version of the parent project to inherit.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="relativePath" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The relative path of the parent subproject POM file or directory within the checkout.
+ If not specified, it defaults to {@code ..}, i.e. the parent directory.
+ Maven looks for the parent POM first in this location on
+ the filesystem if explicitly provided, then in the reactor if groupId and artifactId are provided,
+ then in the default parent directory, then the local repository, and lastly in the remote repo.
+ However, if the both relative path and the group ID / artifact ID are provided,
+ they must match the file in the location given.
+ Specify either the {@code relativePath} or the {@code groupId}/{@code artifactId}, not both.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Developer">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Information about one of the committers on this project.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The unique ID of the developer in the SCM.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The full name of the contributor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="email" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The email address of the contributor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The URL for the homepage of the contributor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="organization" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The organization to which the contributor belongs.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="organizationUrl" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The URL of the organization.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="roles">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The roles the contributor plays in the project. Each role is described by a
+ {@code role} element, the body of which is a role name. This can also be used to
+ describe the contribution.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="role" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="timezone" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The timezone the contributor is in. Typically, this is a number in the range
+ <a href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a> to <a href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a>
+ or a valid time zone id like "America/Montreal" (UTC-05:00) or "Europe/Paris" (UTC+01:00).
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="properties">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Properties about the contributor, such as an instant messenger handle.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="MailingList">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">This element describes all of the mailing lists associated with a project. The
+ auto-generated site references this information.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the mailing list.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="subscribe" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The email address or link that can be used to subscribe to
+ the mailing list. If this is an email address, a
+ {@code mailto:} link will automatically be created
+ when the documentation is created.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="unsubscribe" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The email address or link that can be used to unsubscribe to
+ the mailing list. If this is an email address, a
+ {@code mailto:} link will automatically be created
+ when the documentation is created.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="post" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The email address or link that can be used to post to
+ the mailing list. If this is an email address, a
+ {@code mailto:} link will automatically be created
+ when the documentation is created.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="archive" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The link to a URL where you can browse the mailing list archive.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="otherArchives">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The link to alternate URLs where you can browse the list archive.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="otherArchive" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Contributor">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Description of a person who has contributed to the project, but who does not have
+ commit privileges. Usually, these contributions come in the form of patches submitted.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The full name of the contributor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="email" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The email address of the contributor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The URL for the homepage of the contributor.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="organization" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The organization to which the contributor belongs.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="organizationUrl" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The URL of the organization.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="roles">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The roles the contributor plays in the project. Each role is described by a
+ {@code role} element, the body of which is a role name. This can also be used to
+ describe the contribution.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="role" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="timezone" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The timezone the contributor is in. Typically, this is a number in the range
+ <a href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a> to <a href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a>
+ or a valid time zone id like "America/Montreal" (UTC-05:00) or "Europe/Paris" (UTC+01:00).
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="properties">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Properties about the contributor, such as an instant messenger handle.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Organization">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Specifies the organization that produces this project.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The full name of the organization.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The URL to the organization's home page.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="DistributionManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">This elements describes all that pertains to distribution for a project. It is
+ primarily used for deployment of artifacts and the site produced by the build.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="repository" type="DeploymentRepository">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Information needed to deploy the artifacts generated by the project to a
+ remote repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="snapshotRepository" type="DeploymentRepository">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Where to deploy snapshots of artifacts to. If not given, it defaults to the
+ {@code repository} element.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="site" type="Site">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Information needed for deploying the web site of the project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="downloadUrl" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The URL of the project's download page. If not given users will be
+ referred to the homepage given by {@code url}.
+ This is given to assist in locating artifacts that are not in the repository due to
+ licensing restrictions.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="relocation" type="Relocation">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Relocation information of the artifact if it has been moved to a new group ID
+ and/or artifact ID.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="status" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Gives the status of this artifact in the remote repository.
+ This must not be set in your local project, as it is updated by
+ tools placing it in the repository. Valid values are: {@code none} (default),
+ {@code converted} (repository manager converted this from a Maven 1 POM),
+ {@code partner}
+ (directly synced from a partner Maven 2 repository), {@code deployed} (was deployed from a Maven 2
+ instance), {@code verified} (has been hand verified as correct and final).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="DeploymentRepository">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Deployment repository contains the information needed for deploying to the remote
+ repository, which adds uniqueVersion property to usual repositories for download.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="uniqueVersion" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Whether to assign snapshots a unique version comprised of the timestamp and
+ build number, or to use the same version each time</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="releases" type="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">How to handle downloading of releases from this repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">How to handle downloading of snapshots from this repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A unique identifier for a repository. This is used to match the repository
+ to configuration in the {@code settings.xml} file, for example. Furthermore, the identifier is
+ used during POM inheritance and profile injection to detect repositories that should be merged.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Human readable name of the repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The url of the repository, in the form {@code protocol://hostname/path}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="layout" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The type of layout this repository uses for locating and storing artifacts -
+ can be {@code legacy} or {@code default}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Download policy.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="enabled" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether to use this repository for downloading this type of artifact. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code true}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="updatePolicy" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The frequency for downloading updates - can be
+ {@code always},
+ {@code daily} (default),
+ {@code interval:XXX} (in minutes) or
+ {@code never} (only if it doesn't exist locally).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="checksumPolicy" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ What to do when verification of an artifact checksum fails. Valid values are
+ {@code ignore},
+ {@code fail} (default for Maven 4 and above) or
+ {@code warn} (default for Maven 3).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Relocation">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes where an artifact has moved to. If any of the values are omitted, it is
+ assumed to be the same as it was before.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The group ID the artifact has moved to.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The new artifact ID of the artifact.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The new version of the artifact.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="message" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">An additional message to show the user about the move, such as the reason.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Site">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Contains the information needed for deploying websites.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A unique identifier for a deployment location. This is used to match the
+ site to configuration in the {@code settings.xml} file, for example.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Human readable name of the deployment location.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The url of the location where website is deployed, in the form {@code protocol://hostname/path}.
+ <p><b>Default value is</b>: parent value [+ path adjustment] + (artifactId or project.directory property), or just parent value if
+ site's {@code child.site.url.inherit.append.path="false"}.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ <xs:attribute name="child.site.url.inherit.append.path" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ When children inherit from distribution management site url, append path or not? Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}
+ <p><b>Default value is</b>: {@code true}</p>
+ @since Maven 3.6.1
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="Reporting">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Section for management of reports and their configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="excludeDefaults" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ If true, then the default reports are not included in the site generation.
+ This includes the reports in the "Project Info" menu. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code false}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Where to store all the generated reports. The default is
+ {@code ${project.build.directory}/site}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="plugins">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The reporting plugins to use and their configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="ReportPlugin" name="plugin" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ReportPlugin">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The {@code <plugin>} element in {@code <reporting><plugins>} contains information required for a report plugin.
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string" default="org.apache.maven.plugins">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The group ID of the reporting plugin in the repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact ID of the reporting plugin in the repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The version of the reporting plugin to be used. Starting with Maven 3, if no version is defined explicitly,
+ version is searched in {@code build/plugins} then in {@code build/pluginManagement}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="reportSets">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Multiple specifications of a set of reports, each having (possibly) different
+ configuration. This is the reporting parallel to an {@code execution} in the build.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="ReportSet" name="reportSet" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="inherited" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether any configuration should be propagated to child POMs. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code true}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ <p>The configuration as DOM object.</p>
+ <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
+ {@code xml:space="preserve"} to elements you want to preserve whitespace.</p>
+ <p>You can control how child POMs inherit configuration from parent POMs by adding {@code combine.children}
+ or {@code combine.self} attributes to the children of the configuration element:</p>
+ <ul>
+ <li>{@code combine.children}: available values are {@code merge} (default) and {@code append},</li>
+ <li>{@code combine.self}: available values are {@code merge} (default) and {@code override}.</li>
+ </ul>
+
+ @see <a href="https://maven.apache.org/pom.html#Plugins">POM Reference documentation</a>
+ @see <a href="https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a>
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ReportSet">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Represents a set of reports and configuration to be used to generate them.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">The unique id for this report set, to be used during POM inheritance and profile injection
+ for merging of report sets.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="reports">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The list of reports from this plugin which should be generated from this set.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="report" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="inherited" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether any configuration should be propagated to child POMs. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code true}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ <p>The configuration as DOM object.</p>
+ <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
+ {@code xml:space="preserve"} to elements you want to preserve whitespace.</p>
+ <p>You can control how child POMs inherit configuration from parent POMs by adding {@code combine.children}
+ or {@code combine.self} attributes to the children of the configuration element:</p>
+ <ul>
+ <li>{@code combine.children}: available values are {@code merge} (default) and {@code append},</li>
+ <li>{@code combine.self}: available values are {@code merge} (default) and {@code override}.</li>
+ </ul>
+
+ @see <a href="https://maven.apache.org/pom.html#Plugins">POM Reference documentation</a>
+ @see <a href="https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a>
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Profile">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Modifications to the build process which is activated based on environmental
+ parameters or command line arguments.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The identifier of this build profile. This is used for command line
+ activation, and identifies profiles to be merged.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="activation" type="Activation">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The conditional logic which will automatically trigger the inclusion of this
+ profile.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="build" type="BuildBase">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Information required to build the project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="modules">
+ <xs:annotation>
+ <xs:documentation source="version">[4.0.0 => 4.1.0]</xs:documentation>
+ <xs:documentation source="description">
+ @deprecated Use {@link #subprojects} instead.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="module" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="subprojects">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0</xs:documentation>
+ <xs:documentation source="description">The subprojects (formerly called modules) to build as a part of this
+ project. Each subproject listed is a relative path to the directory containing the subproject.
+ To be consistent with the way default URLs are calculated from parent, it is recommended
+ to have subproject names match artifact ids.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="subproject" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="distributionManagement" type="DistributionManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Distribution information for a project that enables deployment of the site
+ and artifacts to remote web servers and repositories respectively.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="properties">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Properties that can be used throughout the POM as a substitution, and
+ are used as filters in resources if enabled.
+ The format is {@code <name>value</name>}.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="dependencyManagement" type="DependencyManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Default dependency information for projects that inherit from this one. The
+ dependencies in this section are not immediately resolved. Instead, when a POM derived
+ from this one declares a dependency described by a matching groupId and artifactId, the
+ version and other values from this section are used for that dependency if they were not
+ already specified.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="dependencies">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element describes all the dependencies associated with a project.
+ These dependencies are used to construct a classpath for your
+ project during the build process. They are automatically downloaded from the
+ repositories defined in this project.
+
+ @see <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">Dependency mechanism</a>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="repositories">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The lists of the remote repositories for discovering dependencies and
+ extensions.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginRepositories">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The lists of the remote repositories for discovering plugins for builds and
+ reports.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="reporting" type="Reporting">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element includes the specification of report plugins to use
+ to generate the reports on the Maven-generated site.
+ These reports will be run when a user executes {@code mvn site}.
+ All the reports will be included in the navigation bar for browsing.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Activation">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The conditions within the build runtime environment which will trigger the
+ automatic inclusion of the build profile. Multiple conditions can be defined, which must
+ be all satisfied to activate the profile.
+
+ <p>In addition to the traditional activation mechanisms (JDK version, OS properties,
+ file existence, etc.), Maven now supports a powerful condition-based activation
+ through the {@code condition} field. This new mechanism allows for more flexible
+ and expressive profile activation rules.</p>
+
+ <h2>Condition Syntax</h2>
+
+ <p>The condition is specified as a string expression that can include various
+ functions, comparisons, and logical operators. Some key features include:</p>
+
+ <ul>
+ <li>Property access: {@code ${property.name}}</li>
+ <li>Comparison operators: {@code ==}, {@code !=}, {@code <}, {@code >}, {@code <=}, {@code >=}</li>
+ <li>Logical operators: {@code &&} (AND), {@code ||} (OR), {@code not(...)}</li>
+ <li>Functions: {@code exists(...)}, {@code missing(...)}, {@code matches(...)}, {@code inrange(...)}, and more</li>
+ </ul>
+
+ <h2>Supported Functions</h2>
+
+ <p>The following functions are supported in condition expressions:</p>
+
+ <ul>
+ <li>{@code length(string)}: Returns the length of the given string.</li>
+ <li>{@code upper(string)}: Converts the string to uppercase.</li>
+ <li>{@code lower(string)}: Converts the string to lowercase.</li>
+ <li>{@code substring(string, start, [end])}: Returns a substring of the given string.</li>
+ <li>{@code indexOf(string, substring)}: Returns the index of the first occurrence of substring in string, or -1 if not found.</li>
+ <li>{@code contains(string, substring)}: Checks if the string contains the substring.</li>
+ <li>{@code matches(string, regex)}: Checks if the string matches the given regular expression.</li>
+ <li>{@code not(condition)}: Negates the given condition.</li>
+ <li>{@code if(condition, trueValue, falseValue)}: Returns trueValue if the condition is true, falseValue otherwise.</li>
+ <li>{@code exists(path)}: Checks if a file matching the given glob pattern exists.</li>
+ <li>{@code missing(path)}: Checks if a file matching the given glob pattern does not exist.</li>
+ <li>{@code inrange(version, range)}: Checks if the given version is within the specified version range.</li>
+ </ul>
+
+ <h2>Supported properties</h2>
+
+ <p>The following properties are supported in expressions:</p>
+
+ <ul>
+ <li>`project.basedir`: The project directory</li>
+ <li>`project.rootDirectory`: The root directory of the project</li>
+ <li>`project.artifactId`: The artifactId of the project</li>
+ <li>`project.packaging`: The packaging of the project</li>
+ <li>user properties</li>
+ <li>system properties (including environment variables prefixed with `env.`)</li>
+ </ul>
+
+ <h2>Examples</h2>
+
+ <ul>
+ <li>JDK version range: {@code inrange(${java.version}, '[11,)')} (JDK 11 or higher)</li>
+ <li>OS check: {@code ${os.name} == 'windows'}</li>
+ <li>File existence: {@code exists('${project.basedir}/src/**}{@code /*.xsd')}</li>
+ <li>Property check: {@code ${my.property} != 'some-value'}</li>
+ <li>Regex matching: {@code matches(${os.version}, '.*aws')}</li>
+ <li>Complex condition: {@code ${os.name} == 'windows' && ${os.arch} != 'amd64' && inrange(${os.version}, '[10,)')}</li>
+ <li>String length check: {@code length(${user.name}) > 5}</li>
+ <li>Substring with version: {@code substring(${java.version}, 0, 3) == '1.8'}</li>
+ <li>Using indexOf: {@code indexOf(${java.version}, '-') > 0}</li>
+ <li>Conditional logic: {@code if(contains(${java.version}, '-'), substring(${java.version}, 0, indexOf(${java.version}, '-')), ${java.version})}</li>
+ </ul>
+
+ <p>This flexible condition mechanism allows for more precise control over profile
+ activation, enabling developers to create profiles that respond to a wide range of
+ environmental factors and project states.</p>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="activeByDefault" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">If set to true, this profile will be active unless another profile in this
+ pom is activated using the command line -P option or by one of that profile's
+ activators.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="jdk" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this profile will be activated when a matching JDK is detected.
+ For example, {@code 1.4} only activates on JDKs versioned 1.4,
+ while {@code !1.4} matches any JDK that is not version 1.4. Ranges are supported too:
+ {@code [1.5,)} activates when the JDK is 1.5 minimum.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="os" type="ActivationOS">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Specifies that this profile will be activated when matching operating system
+ attributes are detected.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="property" type="ActivationProperty">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Specifies that this profile will be activated when this property is
+ specified.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="file" type="ActivationFile">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Specifies that this profile will be activated based on existence of a file.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="packaging" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">Specifies that this profile will be activated based on the project's packaging.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="condition" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">The condition which must be satisfied to activate the profile.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ActivationProperty">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">This is the property specification used to activate a profile. If the value field
+ is empty, then the existence of the named property will activate the profile, otherwise it
+ does a case-sensitive match against the property value as well.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The name of the property to be used to activate a profile.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="value" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The value of the property required to activate a profile.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ActivationFile">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">This is the file specification used to activate the profile. The {@code missing} value
+ is the location of a file that needs to exist, and if it doesn't, the profile will be
+ activated. On the other hand, {@code exists} will test for the existence of the file and if it is
+ there, the profile will be activated.
+ <p>Variable interpolation for these file specifications is limited to {@code ${project.basedir}},
+ system properties and user properties.</p></xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="missing" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The name of the file that must be missing to activate the profile. Please note, that missing and exists
+ fields cannot be used together. Only one of them should be used at any one time.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="exists" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The name of the file that must exist to activate the profile. Please note, that missing and exists
+ fields cannot be used together. Only one of them should be used at any one time.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ActivationOS">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">This is an activator which will detect an operating system's attributes in order
+ to activate its profile.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the operating system to be used to activate the profile. This must be an exact match
+ of the {@code ${os.name}} Java property, such as {@code Windows XP}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="family" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The general family of the OS to be used to activate the profile, such as
+ {@code windows} or {@code unix}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="arch" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The architecture of the operating system to be used to activate the
+ profile.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The version of the operating system to be used to activate the
+ profile.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Repository">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">A repository contains the information needed for establishing connections with
+ remote repository.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="releases" type="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">How to handle downloading of releases from this repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">How to handle downloading of snapshots from this repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A unique identifier for a repository. This is used to match the repository
+ to configuration in the {@code settings.xml} file, for example. Furthermore, the identifier is
+ used during POM inheritance and profile injection to detect repositories that should be merged.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Human readable name of the repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The url of the repository, in the form {@code protocol://hostname/path}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="layout" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The type of layout this repository uses for locating and storing artifacts -
+ can be {@code legacy} or {@code default}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="BuildBase">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Build configuration in a profile.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="defaultGoal" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The default goal to execute when none is specified for
+ the project. Note that in case of a build with subprojects, only the default goal of the top-level
+ project is relevant, i.e. the default goals of subprojects are ignored. Since Maven 3,
+ multiple goals/phases can be separated by whitespace.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="resources">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element describes all the classpath resources such as properties
+ files associated with a project. These resources are often included in the final
+ package.
+ The default value is {@code src/main/resources}.
+
+ @deprecated Replaced by {@code <Source>} with {@code main} scope and {@code resources} language.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Resource" name="resource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="testResources">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element describes all the classpath resources such as properties
+ files associated with a project's unit tests.
+ The default value is {@code src/test/resources}.
+
+ @deprecated Replaced by {@code <Source>} with {@code test} scope and {@code resources} language.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Resource" name="testResource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="directory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The directory where all files generated by the build are placed.
+ The default value is {@code target}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="finalName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The filename (excluding the extension, and with no path information) that
+ the produced artifact will be called.
+ The default value is {@code ${artifactId}-${version}}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="filters">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The list of filter properties files that are used when filtering is enabled.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="filter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginManagement" type="PluginManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Default plugin information to be made available for reference by projects
+ derived from this one. This plugin configuration will not be resolved or bound to the
+ lifecycle unless referenced. Any local configuration for a given plugin will override
+ the plugin's entire definition here.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="plugins">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The list of plugins to use.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Plugin" name="plugin" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Plugin">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <plugin>} element contains information required for a plugin.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string" default="org.apache.maven.plugins">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The group ID of the plugin in the repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact ID of the plugin in the repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The version (or valid range of versions) of the plugin to be used.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="extensions" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether to load Maven extensions (such as packaging and type handlers) from
+ this plugin. For performance reasons, this should only be enabled when necessary. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code false}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="executions">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Multiple specifications of a set of goals to execute during the build
+ lifecycle, each having (possibly) a different configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="PluginExecution" name="execution" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="dependencies">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Additional dependencies that this project needs to introduce to the plugin's
+ classloader.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Dependency" name="dependency" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="inherited" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether any configuration should be propagated to child POMs. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code true}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ <p>The configuration as DOM object.</p>
+ <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
+ {@code xml:space="preserve"} to elements you want to preserve whitespace.</p>
+ <p>You can control how child POMs inherit configuration from parent POMs by adding {@code combine.children}
+ or {@code combine.self} attributes to the children of the configuration element:</p>
+ <ul>
+ <li>{@code combine.children}: available values are {@code merge} (default) and {@code append},</li>
+ <li>{@code combine.self}: available values are {@code merge} (default) and {@code override}.</li>
+ </ul>
+
+ @see <a href="https://maven.apache.org/pom.html#Plugins">POM Reference documentation</a>
+ @see <a href="https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a>
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="PluginExecution">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code @lt;execution>} element contains information required for the
+ execution of a plugin.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The identifier of this execution for labelling the goals during the build,
+ and for matching executions to merge during inheritance and profile injection.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="phase" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The build lifecycle phase to bind the goals in this execution to. If omitted,
+ the goals will be bound to the default phase specified by the plugin. </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="goals">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The goals to execute with the given configuration.</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="inherited" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether any configuration should be propagated to child POMs. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code true}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ <p>The configuration as DOM object.</p>
+ <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add
+ {@code xml:space="preserve"} to elements you want to preserve whitespace.</p>
+ <p>You can control how child POMs inherit configuration from parent POMs by adding {@code combine.children}
+ or {@code combine.self} attributes to the children of the configuration element:</p>
+ <ul>
+ <li>{@code combine.children}: available values are {@code merge} (default) and {@code append},</li>
+ <li>{@code combine.self}: available values are {@code merge} (default) and {@code override}.</li>
+ </ul>
+
+ @see <a href="https://maven.apache.org/pom.html#Plugins">POM Reference documentation</a>
+ @see <a href="https://codehaus-plexus.github.io/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a>
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Resource">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">This element describes all of the classpath resources associated with a project
+ or unit tests.
+
+ @deprecated Replaced by {@code <Source>} with {@code resources} language.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="targetPath" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Describe the resource target path. The path is relative to the target/classes
+ directory (i.e. {@code ${project.build.outputDirectory}}).
+ For example, if you want that resource to appear in a specific package
+ ({@code org.apache.maven.messages}), you must specify this
+ element with this value: {@code org/apache/maven/messages}.
+ This is not required if you simply put the resources in that directory
+ structure at the source, however.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="filtering" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether resources are filtered to replace tokens with parameterised values or not.
+ The values are taken from the {@code properties} element and from the
+ properties in the files listed in the {@code filters} element. Note: While the type
+ of this field is {@code String} for technical reasons, the semantic type is actually
+ {@code Boolean}. Default value is {@code false}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="directory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Describe the directory where the resources are stored. The path is relative
+ to the POM.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="includes">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A list of patterns to include, e.g. {@code **&#47;*.xml}.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="include" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="excludes">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A list of patterns to exclude, e.g. {@code **&#47;*.xml}
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="exclude" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="PluginManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Section for management of default plugin information for use in a group of POMs.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="plugins">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The list of plugins to use.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Plugin" name="plugin" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Prerequisites">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes the prerequisites a project can have.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="maven" type="xs:string" default="2.0">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ For a plugin project (packaging is {@code maven-plugin}), the minimum version of
+ Maven required to use the resulting plugin.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Build">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <build>} element contains information required to build the project.
+ Default values are defined in Super POM.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="sources">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ All the sources to compile and resources files to copy for a project or it's unit tests.
+ The sources can be Java source files, generated source files, scripts, or resources for examples.
+ Each source is specified by a {@code directory} element, which is relative to the POM.
+ The kind of sources (source files to compile or resources to copy) and their usage (for the main code
+ or for the tests) is specified by the {@code scope} element together with each source directory.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Source" name="source" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="sourceDirectory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element specifies a directory containing the source of the project. The
+ generated build system will compile the sources from this directory when the project is
+ built. The path given is relative to the project descriptor.
+ The default value is {@code src/main/java}.
+
+ @deprecated Replaced by {@code <Source>} with {@code main} scope.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="scriptSourceDirectory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element specifies a directory containing the script sources of the
+ project. This directory is meant to be different from the sourceDirectory, in that its
+ contents will be copied to the output directory in most cases (since scripts are
+ interpreted rather than compiled).
+ The default value is {@code src/main/scripts}.
+
+ @deprecated Replaced by {@code <Source>} with {@code script} language.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="testSourceDirectory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element specifies a directory containing the unit test source of the
+ project. The generated build system will compile these directories when the project is
+ being tested. The path given is relative to the project descriptor.
+ The default value is {@code src/test/java}.
+
+ @deprecated Replaced by {@code <Source>} with {@code test} scope.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The directory where compiled application classes are placed.
+ The default value is {@code target/classes}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="testOutputDirectory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The directory where compiled test classes are placed.
+ The default value is {@code target/test-classes}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="extensions">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">A set of build extensions to use from this project.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Extension" name="extension" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="defaultGoal" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">The default goal to execute when none is specified for
+ the project. Note that in case of a build with subprojects, only the default goal of the top-level
+ project is relevant, i.e. the default goals of subprojects are ignored. Since Maven 3,
+ multiple goals/phases can be separated by whitespace.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="resources">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element describes all the classpath resources such as properties
+ files associated with a project. These resources are often included in the final
+ package.
+ The default value is {@code src/main/resources}.
+
+ @deprecated Replaced by {@code <Source>} with {@code main} scope and {@code resources} language.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Resource" name="resource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="testResources">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This element describes all the classpath resources such as properties
+ files associated with a project's unit tests.
+ The default value is {@code src/test/resources}.
+
+ @deprecated Replaced by {@code <Source>} with {@code test} scope and {@code resources} language.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Resource" name="testResource" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="directory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The directory where all files generated by the build are placed.
+ The default value is {@code target}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="finalName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The filename (excluding the extension, and with no path information) that
+ the produced artifact will be called.
+ The default value is {@code ${artifactId}-${version}}.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="filters">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The list of filter properties files that are used when filtering is enabled.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="filter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginManagement" type="PluginManagement">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Default plugin information to be made available for reference by projects
+ derived from this one. This plugin configuration will not be resolved or bound to the
+ lifecycle unless referenced. Any local configuration for a given plugin will override
+ the plugin's entire definition here.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="plugins">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The list of plugins to use.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Plugin" name="plugin" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Source">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Description of the sources associated with a project main code or unit tests.
+ The sources can be Java source files, generated source files, scripts, or resources for examples.
+ A source is specified by a {@code directory} element, which is relative to the POM.
+ The directory content can optionally be reduced to a subset with the {@code includes} and
+ {@code excludes} elements. The kind of sources (codes, resources, <i>etc.</i>) and their
+ usage (main code, tests, <i>etc.</i>) is specified by the {@code scope} element.
+
+ <h2>Default source directories</h2>
+ If no source directories are specified, the default values depend on whether module names are specified:
+ <ul>
+ <li>{@code src/${scope}/${lang}} if no module is specified</li>
+ <li>{@code src/${module}/${scope}/${lang}} if a module is specified</li>
+ </ul>
+ where
+ {@code ${scope}} is the value of the {@link #scope} element (typically {@code main} or {@code test}),
+ {@code ${lang}} is the value of the {@link #lang} element (typically {@code java} or {@code resources}),
+ and {@code ${module}} is the optional {@link #module} element.
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="scope" type="xs:string" default="main">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Specifies in which context the source files will be used - typically {@code main} or {@code test}.
+
+ <p>The <b>main</b> scope is used for specifying a directory containing the source of the project.
+ The generated build system will compile the sources from this directory when the project is built.
+ The path given in the {@code directory} field is relative to the project descriptor.
+ The default directory for the default language (Java) is {@code "src/main/java"}.</p>
+
+ <p>The <b>test</b> scope is used for specifying a directory containing the unit test source of the project.
+ The generated build system will compile these directories when the project is being tested.
+ The path given in the {@code directory} field is relative to the project descriptor.
+ The default directory for the default language (Java) is {@code "src/test/java"}.</p>
+
+ <p>If no scope is specified, the default is {@code main}.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="lang" type="xs:string" default="java">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Specifies the language of the source files - typically {@code java} or {@code resources}.
+ Resources is used as a generic term for scripting languages (e.g., JavaScript or Python)
+ or markup languages (e.g. properties file, <abbr>JSON</abbr> or <abbr>XML</abbr>).
+
+ <p>The <b>java</b> language is used for specifying a directory containing the Java sources of the project.
+ The generated build system will compile the sources from this directory using the Java compiler when the
+ project is built. The path given in the {@code directory} field is relative to the project descriptor.
+ The default directory for the main Java sources is {@code "src/main/java"}.</p>
+
+ <p>The <b>resources</b> language is used for specifying a directory containing the class-path
+ or module-path resources such as properties files or scripts associated with a project.
+ This directory is meant to be different from the main source directory,
+ in that its contents will be copied to the output directory in most cases
+ (since scripts are interpreted rather than compiled).
+ The default directory for the main resources is {@code "src/main/resources"}.</p>
+
+ <p>If no language is specified, the default is {@code java}.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="module" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Name of the Java module (or other language-specific module) which is built by the sources.
+ This element can be specified in a Maven project containing multiple Java modules.
+ It is generally not needed for non-modular projects, or for modular projects having only one module.
+
+ <p>If a module name is specified for resources or script files,
+ then this value modifies the directory where the files will be copied.
+ For example, if a Java module name is "foo.biz", then the {@code foo/bar.properties}
+ resource file will be copied as {@code foo.biz/foo/bar.properties}.</p>
+
+ <p>This element can be combined with the {@code targetVersion} element for specifying sources,
+ scripts, or resources that are specific to both a particular module and a target version.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="targetVersion" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The version of the platform where the code will be executed.
+ In a Java environment, this is the value of the {@code --release} compiler option.
+ If a Java project contains multiple main sources with different target versions,
+ then a multi-version <abbr>JAR</abbr> file will be created
+ with the lowest version taken as the <dfn>base version</dfn>.
+ If this element is omitted, then the default target version is the compiler default value,
+ which is usually the version of the Java environment running Maven.
+
+ <p>If a target version, different from the base version, is specified for resources or script files,
+ then this value modifies the directory where the files will be copied.
+ For example, if {@code targetVersion} is 17, then the {@code foo/bar.properties}
+ resource file will be copied as {@code META-INF/versions/17/foo/bar.properties}.</p>
+
+ <p>This element can be combined with the {@code module} element for specifying sources,
+ scripts, or resources that are specific to both a particular module and a target version.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="targetPath" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Specifies an explicit target path, overriding the default value.
+ The path is relative to the {@code ${project.build.outputDirectory}} directory,
+ which is typically {@code target/classes} in a Java project.
+
+ <p>When a target path is explicitly specified, the values of the {@code module} and {@code targetVersion}
+ elements are not used for inferring the path (they are still used as compiler options however).
+ It means that for scripts and resources, the files below the path specified by {@code directory}
+ are copied to the path specified by {@code targetPath} with the exact same directory structure.
+ It is user's responsibility to put module and version components in the {@code targetPath} if needed.</p>
+
+ <p>Note that for Java source files, a directory with the module name may still be generated despite
+ above statement about {@code module} being ignored, because that directory is generated by the Java
+ compiler rather than Maven.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="stringFiltering" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Whether resources are filtered to replace tokens with parameterized values.
+ The values are taken from the {@code properties} element and from the properties
+ in the files listed in the {@code filters} element.
+
+ <p>The default value is {@code false}.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="enabled" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Whether the directory described by this source element should be included in the build.
+ This flag provides an easy way to include or exclude some sources depending, for example,
+ o property values defined in profiles. A use case is including optional resources only
+ when the user confirmed a license agreement.
+
+ <p>The default value is {@code true}.</p>
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="directory" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">Describe the directory where the resources are stored. The path is relative
+ to the POM.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="includes">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A list of patterns to include, e.g. {@code **&#47;*.xml}.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="include" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="excludes">
+ <xs:annotation>
+ <xs:documentation source="version">3.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A list of patterns to exclude, e.g. {@code **&#47;*.xml}
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="exclude" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Extension">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">Describes a build extension to utilise.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The group ID of the extension's artifact.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact ID of the extension.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">4.0.0+</xs:documentation>
+ <xs:documentation source="description">The version of the extension.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">4.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ The configuration of the extension.
+ @since Maven 4.0.0
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/plugin-2.0.0-rc-4.xsd b/content/resources/xsd/plugin-2.0.0-rc-4.xsd
new file mode 100644
index 00000000..5fd6efd9
--- /dev/null
+++ b/content/resources/xsd/plugin-2.0.0-rc-4.xsd
@@ -0,0 +1,413 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/PLUGIN/2.0.0" targetNamespace="http://maven.apache.org/PLUGIN/2.0.0">
+ <xs:element name="plugin" type="PluginDescriptor">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Root element of the {@code plugin.xml} file.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="PluginDescriptor">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Root element of the {@code plugin.xml} file.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Name of the plugin.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Description of the plugin.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The group id of the plugin.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifact id of the plugin.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The version of the plugin.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="goalPrefix" type="xs:string">
+ <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="isolatedRealm" type="xs:boolean" default="false">
+ <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="inheritedByDefault" type="xs:boolean" default="true">
+ <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="requiredJavaVersion" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ A version range which specifies the supported Java versions. A version range can either use the usual mathematical syntax "[2.0.10,2.1.0),[3.0,)" or use a single version "2.2.1". The latter is a short form for "[2.2.1,)", i.e. denotes the minimum version required.
+ @since Maven 4.0.0-alpha-3
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="requiredMavenVersion" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ A version range which specifies the supported Maven versions. A version range can either use the usual mathematical syntax "[2.0.10,2.1.0),[3.0,)" or use a single version "2.2.1". The latter is a short form for "[2.2.1,)", i.e. denotes the minimum version required. This value takes precedence over the POMs Maven prerequisite.
+ @since Maven 4.0.0-alpha-3
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="mojos">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Description of each Mojo provided by the plugin.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="MojoDescriptor" name="mojo" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="MojoDescriptor">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">A Mojo description.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="goal" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The goal name for the Mojo, that users will reference from the command line to execute the Mojo directly,
+ or inside a POM in order to provide Mojo-specific configuration.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The description of this Mojo's functionality.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="implementation" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The Mojo's fully-qualified class name (or script path in the case of non-Java Mojos).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="language" type="xs:string" default="java">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The implementation language for this Mojo (java, beanshell, etc.).</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="phase" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Defines a default phase to bind a Mojo execution to if the user does not explicitly set a phase in the POM.
+ <p><b>Note:</b> This will not automagically make a Mojo run when the plugin declaration is added
+ to the POM. It merely enables the user to omit the {@code <phase>} element from the
+ surrounding {@code <execution>} element.</p>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="executePhase" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Reference the invocation phase of the Mojo.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="executeGoal" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Reference the invocation goal of the Mojo.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="executeLifecycle" type="xs:string">
+ <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="dependencyResolution" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Flags this Mojo as requiring the dependencies in the specified class path to be resolved before it can
+ execute: {@code compile}, {@code runtime}, {@code test},
+ {@code compile+runtime} (since Maven 3.0) or {@code runtime+system} (since Maven 3.0)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="dependencyCollection" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Flags this Mojo as requiring information about the dependencies that would make up the specified class
+ path. As the name suggests, this is similar to requiresDependencyResolution and supports the same values.
+ The important difference is this will not resolve the files for the dependencies, i.e. the artifacts
+ associated with a Maven project can lack a file. As such, this annotation is meant for Mojos that only
+ want to analyze the set of transitive dependencies, in particular during early lifecycle phases where
+ full dependency resolution might fail due to projects which haven't been built yet.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="directInvocationOnly" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">Flags this Mojo to be invoked directly only.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="projectRequired" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">Flags this Mojo to require running inside of a project.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="onlineRequired" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">Flags this Mojo to require online mode for its operation.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="aggregator" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Flags this Mojo to run it in a multi-module way, i.e. aggregate the build with the set of projects
+ listed as modules.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="inheritedByDefault" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Specify that the Mojo is inherited.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="since" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Specify the version when the Mojo was added to the API. Similar to Javadoc since.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="deprecated" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Description with the reason of Mojo deprecation. Similar to Javadoc {@code @deprecated}
+ This will trigger a warning when a user tries to use a Mojo marked as deprecated.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configurator" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The configurator type to use when injecting parameter values into this Mojo. The value is normally deduced
+ from the Mojo's implementation language, but can be specified to allow a custom ComponentConfigurator
+ implementation to be used.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="parameters">
+ <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="Parameter" name="parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="resolutions">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description"></xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Resolution" name="resolution" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">the id of the mojo, based on the goal name</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="fullGoalName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">the full goal name</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Parameter">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">A parameter description.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the parameter, to be used while configuring this parameter from the Mojo's declared defaults
+ or from the POM.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="alias" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies an alias which can be used to configure this parameter from the POM.
+ This is primarily useful to improve user-friendliness, where Mojo field names are not intuitive to the
+ user or are otherwise not conducive to configuration via the POM.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="type" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The Java type for this parameter. This is used to validate the result of any expressions used to calculate
+ the value which should be injected into the Mojo for this parameter.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="required" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether this parameter is required for the Mojo to function. This is used to validate the configuration
+ for a Mojo before it is injected, and before the Mojo is executed from some half-state.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="editable" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this parameter can be configured directly by the user (as in the case of POM-specified
+ configuration). This is useful when you want to force the user to use common POM elements rather than
+ plugin configurations, as in the case where you want to use the artifact's final name as a parameter. In
+ this case, you want the user to modify {@code <build><finalName/></build>} rather
+ than specifying a value for finalName directly in the plugin configuration section. It is also useful to
+ ensure that - for example - a List-typed parameter which expects items of type Artifact doesn't get a List
+ full of Strings.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The description of this parameter's use inside the Mojo.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="since" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Specify the version when the parameter was added to the API. Similar to Javadoc since.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="deprecated" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Description with the reason of parameter deprecation. Similar to Javadoc {@code @deprecated}.
+ This will trigger a warning when a user tries to configure a parameter marked as deprecated.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="expression" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">Parameter expression, to let user override default value with a user property, system property or project property.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="defaultValue" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">The default value, as an expression that will be evaluated at injection or run-time.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Resolution">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">Dependency collection or resolution injection.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="field" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">the name of the field to be injected</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="pathScope" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">pathScope used to flatten dependencies</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="requestType" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">either {@code collect}, {@code flatten}, or {@code resolve}</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/repository-metadata-1.2.0-rc-4.xsd b/content/resources/xsd/repository-metadata-1.2.0-rc-4.xsd
new file mode 100644
index 00000000..a5c9745d
--- /dev/null
+++ b/content/resources/xsd/repository-metadata-1.2.0-rc-4.xsd
@@ -0,0 +1,214 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/METADATA/1.2.0" targetNamespace="http://maven.apache.org/METADATA/1.2.0">
+ <xs:element name="metadata" type="Metadata">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="Metadata">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="groupId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The groupId when this directory represents "groupId/artifactId" or "groupId/artifactId/version".</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The artifactId when this directory represents "groupId/artifactId" or "groupId/artifactId/version".</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="versioning" type="Versioning">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Versioning information when this directory represents "groupId/artifactId" or "groupId/artifactId/version".</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The base version (i.e. ending in {@code -SNAPSHOT}) when this directory represents a "groupId/artifactId/version" for a SNAPSHOT.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="plugins">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The set of plugins when this directory represents a "groupId".</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Plugin" name="plugin" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ <xs:attribute name="modelVersion" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The version of the underlying metadata model.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="Plugin">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Mapping information for a single plugin within this group.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Display name for the plugin.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="prefix" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The plugin invocation prefix (i.e. eclipse for eclipse:eclipse)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="artifactId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The plugin artifactId</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Versioning">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Versioning information for "groupId/artifactId" or "groupId/artifactId/version" SNAPSHOT</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="latest" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">What the last version added to the directory is, including both releases and snapshots ("groupId/artifactId" directory only)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="release" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">What the last version added to the directory is, for the releases only ("groupId/artifactId" directory only)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="versions">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Versions available of the artifact (both releases and snapshots) ("groupId/artifactId" directory only)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="version" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="lastUpdated" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">When the metadata was last updated (both "groupId/artifactId" and "groupId/artifactId/version" directories). The timestamp is expressed using UTC in the format yyyyMMddHHmmss.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="snapshot" type="Snapshot">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The current snapshot data in use for this version ("groupId/artifactId/version" only)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="snapshotVersions">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">Information for each sub-artifact available in this artifact snapshot. This is only the most recent SNAPSHOT for each unique extension/classifier combination.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="SnapshotVersion" name="snapshotVersion" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="SnapshotVersion">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">Versioning information for a sub-artifact of the current snapshot artifact.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="classifier" type="xs:string" default="">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The classifier of the sub-artifact. Each classifier and extension pair may only appear once.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="extension" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The file extension of the sub-artifact. Each classifier and extension pair may only appear once.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="value" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The resolved snapshot version of the sub-artifact.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="updated" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The timestamp when this version information was last updated. The timestamp is expressed using UTC in the format yyyyMMddHHmmss.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Snapshot">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Snapshot data for the last artifact corresponding to the SNAPSHOT base version</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="timestamp" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The timestamp when this version was deployed. The timestamp is expressed using UTC in the format yyyyMMdd.HHmmss.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="buildNumber" type="xs:int" default="0">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The incremental build number</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="localCopy" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Whether to use a local copy instead (with filename that includes the base version)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/settings-2.0.0-rc-4.xsd b/content/resources/xsd/settings-2.0.0-rc-4.xsd
new file mode 100644
index 00000000..a533b3cd
--- /dev/null
+++ b/content/resources/xsd/settings-2.0.0-rc-4.xsd
@@ -0,0 +1,739 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/SETTINGS/2.0.0" targetNamespace="http://maven.apache.org/SETTINGS/2.0.0">
+ <xs:element name="settings" type="Settings">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Root element of the user configuration file.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="Settings">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Root element of the user configuration file.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="localRepository" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ The local repository.<br><b>Default value is:</b> {@code ${user.home}/.m2/repository}
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="interactiveMode" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether Maven should attempt to interact with the user for input.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="usePluginRegistry" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether Maven should use the {@code plugin-registry.xml} file to manage plugin versions.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="offline" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Indicate whether maven should operate in offline mode full-time.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="proxies">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Configuration for different proxy profiles. Multiple proxy profiles
+ might come in handy for anyone working from a notebook or other
+ mobile platform, to enable easy switching of entire proxy
+ configurations by simply specifying the profile id, again either from
+ the command line or from the defaults section below.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Proxy" name="proxy" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="servers">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Configuration of server-specific settings, mainly authentication
+ method. This allows configuration of authentication on a per-server
+ basis.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Server" name="server" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="mirrors">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Configuration of download mirrors for repositories.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Mirror" name="mirror" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="repositories">
+ <xs:annotation>
+ <xs:documentation source="version">1.3.0+</xs:documentation>
+ <xs:documentation source="description">
+ The lists of the remote repositories.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginRepositories">
+ <xs:annotation>
+ <xs:documentation source="version">1.3.0+</xs:documentation>
+ <xs:documentation source="description">
+ The lists of the remote repositories for discovering plugins.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="profiles">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Configuration of build profiles for adjusting the build
+ according to environmental parameters.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Profile" name="profile" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="activeProfiles">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ List of manually-activated build profiles, specified in the order in which
+ they should be applied.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="activeProfile" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginGroups">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ List of groupIds to search for a plugin when that plugin
+ groupId is not explicitly provided.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="xs:string" name="pluginGroup" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Proxy">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <proxy>} element contains information required to a proxy settings.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="active" type="xs:string" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether this proxy configuration is the active one. Note: While the type of this field
+ is {@code String} for technical reasons, the semantic type is actually {@code boolean}.
+ @see #isActive()
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="protocol" type="xs:string" default="http">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The proxy protocol.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="username" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The proxy user.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="password" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The proxy password.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="port" type="xs:string" default="8080">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The proxy port. Note: While the type of this field is {@code String} for technical
+ reasons, the semantic type is actually {@code int}.
+ @see #getPort()
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="host" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The proxy host.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="nonProxyHosts" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The list of non-proxied hosts (delimited by {@code |}).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Item identifier.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Server">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <server>} element contains information required to a server settings.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="username" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The username used to authenticate.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="password" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The password used in conjunction with the username to authenticate.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="privateKey" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The private key location used to authenticate.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="passphrase" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The passphrase used in conjunction with the privateKey to authenticate.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="filePermissions" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The permissions for files when they are created.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="directoryPermissions" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The permissions for directories when they are created.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Extra configuration for the transport layer.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Item identifier.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Mirror">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ A download mirror for a given repository.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="mirrorOf" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ A repository id or an expression matching one or many repository ids to mirror, e.g.,
+ <code>central</code> or <code>*,!repo1</code>.
+ <code>*</code>, <code>external:*</code> and <code>external:http:*</code> (since Maven 3.8.0) have
+ a special meaning: see <a href="/guides/mini/guide-mirror-settings.html">Mirror Settings</a> guide.
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The optional name that describes the mirror.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The URL of the mirror repository.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="layout" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">The layout of the mirror repository.
+ @since Maven 3.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="mirrorOfLayouts" type="xs:string" default="default,legacy">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ The layouts of repositories being mirrored. This value can be used to restrict the usage
+ of the mirror to repositories with a matching layout (apart from a matching id).
+ @since Maven 3.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="blocked" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.2.0+</xs:documentation>
+ <xs:documentation source="description">
+
+ Whether this mirror should be blocked from any download request but fail the download process, explaining why.
+ <br><b>Default value is</b>: <code>false</code>
+ <br><b>Since</b>: Maven 3.8.0
+
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Item identifier.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Repository">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Repository contains the information needed for establishing
+ connections with remote repository
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="releases" type="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ How to handle downloading of releases from this repository
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="snapshots" type="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ How to handle downloading of snapshots from this repository
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Human readable name of the repository.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="url" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The url of the repository.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="layout" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The type of layout this repository uses for locating and
+ storing artifacts - can be "legacy" or "default".
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Item identifier.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="RepositoryPolicy">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Download policy</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="enabled" type="xs:boolean" default="true">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Whether to use this repository for downloading this type of
+ artifact.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="updatePolicy" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The frequency for downloading updates - can be "always",
+ "daily" (default), "interval:XXX" (in minutes) or "never"
+ (only if it doesn't exist locally).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="checksumPolicy" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ What to do when verification of an artifact checksum fails. Valid values are "fail" (default for Maven 4 and
+ above), "warn" (default for Maven 3) or "ignore".
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Profile">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Modifications to the build process which is keyed on some sort of environmental parameter.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="activation" type="Activation">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The conditional logic which will automatically trigger the inclusion of this profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="properties">
+ <xs:annotation>
+ <xs:documentation source="version">0.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Extended configuration specific to this profile goes here.
+ Contents take the form of {@code <property.name>property.value</property.name>}
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="repositories">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The lists of the remote repositories.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="repository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="pluginRepositories">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The lists of the remote repositories for discovering plugins.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element type="Repository" name="pluginRepository" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="id" type="xs:string" default="default">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Item identifier.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="Activation">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The conditions within the build runtime environment which will trigger
+ the automatic inclusion of the parent build profile.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="activeByDefault" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Flag specifying whether this profile is active as a default.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="jdk" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this profile will be activated when a matching JDK is detected.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="os" type="ActivationOS">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this profile will be activated when matching OS attributes are detected.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="property" type="ActivationProperty">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this profile will be activated when this property is specified.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="file" type="ActivationFile">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this profile will be activated based on existence of a file.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="packaging" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.2.0+</xs:documentation>
+ <xs:documentation source="description">
+ Specifies that this profile will be activated based on the project's packaging.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="condition" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">2.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The condition which must be satisfied to activate the profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ActivationOS">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This is an activator which will detect an operating system's attributes in order to activate
+ its profile.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the OS to be used to activate a profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="family" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The general family of the OS to be used to activate a profile (e.g. 'windows')
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="arch" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The architecture of the OS to be used to activate a profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="version" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The version of the OS to be used to activate a profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ActivationProperty">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This is the property specification used to activate a profile. If the value field is empty,
+ then the existence of the named property will activate the profile, otherwise it does a case-sensitive
+ match against the property value as well.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the property to be used to activate a profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="value" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The value of the property to be used to activate a profile.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ActivationFile">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ This is the file specification used to activate a profile. The missing value will be the location
+ of a file that needs to exist, and if it doesn't the profile must run. On the other hand exists will test
+ for the existence of the file and if it is there will run the profile.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="missing" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the file that should be missing to activate a profile. Please note, that missing and exists
+ fields cannot be used together. Only one of them should be used at any one time.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="exists" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The name of the file that should exist to activate a profile. Please note, that missing and exists
+ fields cannot be used together. Only one of them should be used at any one time.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/toolchains-1.2.0-rc-4.xsd b/content/resources/xsd/toolchains-1.2.0-rc-4.xsd
new file mode 100644
index 00000000..689cfd59
--- /dev/null
+++ b/content/resources/xsd/toolchains-1.2.0-rc-4.xsd
@@ -0,0 +1,101 @@
+<?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.4.0, -->
+<!-- any modifications will be overwritten. -->
+<!-- ============================================================== -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/TOOLCHAINS/1.2.0" targetNamespace="http://maven.apache.org/TOOLCHAINS/1.2.0">
+ <xs:element name="toolchains" type="PersistedToolchains">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <toolchains>} element is the root of the descriptor.
+ The following table lists all the possible child elements.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="PersistedToolchains">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ The {@code <toolchains>} element is the root of the descriptor.
+ The following table lists all the possible child elements.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toolchain" type="ToolchainModel" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">The toolchain instance definition.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ToolchainModel">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">Definition of a toolchain instance.</xs:documentation>
+ </xs:annotation>
+ <xs:all>
+ <xs:element minOccurs="0" name="type" type="xs:string">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Type of toolchain:<ul>
+ <li>{@code jdk} for <a
+ href="https://maven.apache.org/plugins/maven-toolchains-plugin/toolchains/jdk.html">JDK Standard Toolchain</a>,</li>
+ <li>other value for <a
+ href="https://maven.apache.org/plugins/maven-toolchains-plugin/toolchains/custom.html">Custom Toolchain</a></li>
+ </ul>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="provides">
+ <xs:annotation>
+ <xs:documentation source="version">1.1.0+</xs:documentation>
+ <xs:documentation source="description">
+ Toolchain identification information, which will be matched against project requirements.
+ <p>Each toolchain defines its own properties names and semantics.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="configuration">
+ <xs:annotation>
+ <xs:documentation source="version">1.0.0+</xs:documentation>
+ <xs:documentation source="description">
+ Toolchain configuration information, like location or any information that is to be retrieved.
+ <p>Actual content structure is completely open: each toolchain type will define its own format and
+ semantics.
+ <p>In general, this is a properties format: {@code <name>value</name>} with per-toolchain
+ defined properties names.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 0d4838c8..a1b1b762 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
<!-- disable Reproducible Builds that makes the site build time fixed at last release time -->
<currentStableVersion>3.9.10</currentStableVersion>
<currentStableVersionDetails>5f519b97e944483d878815739f519b2eade0a91d</currentStableVersionDetails>
- <current4xVersion>4.0.0-rc-3</current4xVersion>
+ <current4xVersion>4.0.0-rc-4</current4xVersion>
<current39xVersion>3.9.10</current39xVersion>
<current38xVersion>3.8.9</current38xVersion>
<current36xVersion>3.6.3</current36xVersion>