Added: maven/website/content/repositories/artifacts.html ============================================================================== --- maven/website/content/repositories/artifacts.html (added) +++ maven/website/content/repositories/artifacts.html Tue Sep 27 06:14:15 2022 @@ -0,0 +1,412 @@ +<!DOCTYPE html> + + +<!-- + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M3 from content/markdown/repositories/artifacts.md at 2022-09-27 + | Rendered using Apache Maven Fluido Skin 1.11.0 +--> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M3" /> + <title>Maven – Maven Artifacts</title> + <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0.min.css" /> + <link rel="stylesheet" href="../css/site.css" /> + <link rel="stylesheet" href="../css/print.css" media="print" /> + <script src="../js/apache-maven-fluido-1.11.0.min.js"></script> + + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '3']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); + </script> + <!-- End Matomo Code --> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <header> + <div id="banner"> + <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><img src="../images/apache-maven-project.png" alt="Apache Maven Site" style="" /></a></div> + <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/maven-logo-black-on-white.png" alt="" style="" /></a></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> + <li class=""><a href="../index.html" title="Maven">Maven</a><span class="divider">/</span></li> + <li class="active ">Maven Artifacts <a href="https://github.com/apache/maven-site/tree/master/content/markdown/repositories/artifacts.md"><img src="../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-09-27</li> + <li class="pull-right"><span class="divider">|</span> +<a href="../scm.html" title="Get Sources">Get Sources</a></li> + <li class="pull-right"><a href="../download.cgi" title="Download">Download</a></li> + </ul> + </div> + </header> + <div class="row-fluid"> + <header id="leftColumn" class="span2"> + <nav class="well sidebar-nav"> + <ul class="nav nav-list"> + <li><a href="../index.html" title="Welcome"><span class="none"></span>Welcome</a></li> + <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li> + <li class="nav-header">About Maven</li> + <li><a href="../what-is-maven.html" title="What is Maven?"><span class="none"></span>What is Maven?</a></li> + <li><a href="../maven-features.html" title="Features"><span class="none"></span>Features</a></li> + <li><a href="../download.html" title="Download"><span class="none"></span>Download</a></li> + <li><a href="../users/index.html" title="Use"><span class="icon-chevron-right"></span>Use</a></li> + <li><a href="../docs/history.html" title="Release Notes"><span class="none"></span>Release Notes</a></li> + <li class="nav-header">Documentation</li> + <li><a href="../plugins/index.html" title="Maven Plugins"><span class="none"></span>Maven Plugins</a></li> + <li><a href="../extensions/index.html" title="Maven Extensions"><span class="none"></span>Maven Extensions</a></li> + <li><a href="../guides/index.html" title="Index (category)"><span class="none"></span>Index (category)</a></li> + <li><a href="../users/index.html" title="User Centre"><span class="icon-chevron-right"></span>User Centre</a></li> + <li><a href="../plugin-developers/index.html" title="Plugin Developer Centre"><span class="icon-chevron-right"></span>Plugin Developer Centre</a></li> + <li><a href="../repositories/index.html" title="Maven Repository Centre"><span class="icon-chevron-down"></span>Maven Repository Centre</a> + <ul class="nav nav-list"> + <li><a href="../repository/index.html" title="Maven Central Repository"><span class="icon-chevron-right"></span>Maven Central Repository</a></li> + <li class="active"><a><span class="none"></span>Maven Artifacts</a></li> + <li><a href="../repositories/metadata.html" title="Maven Metadata"><span class="none"></span>Maven Metadata</a></li> + <li><a href="../repositories/layout.html" title="Maven Layout"><span class="none"></span>Maven Layout</a></li> + <li><a href="../repositories/local.html" title="Maven Local Repository"><span class="none"></span>Maven Local Repository</a></li> + <li><a href="../repositories/remote.html" title="Maven Remote Repositories"><span class="none"></span>Maven Remote Repositories</a></li> + </ul></li> + <li><a href="../developers/index.html" title="Maven Developer Centre"><span class="icon-chevron-right"></span>Maven Developer Centre</a></li> + <li><a href="../articles.html" title="Books and Resources"><span class="none"></span>Books and Resources</a></li> + <li><a href="../security.html" title="Security"><span class="none"></span>Security</a></li> + <li class="nav-header">Community</li> + <li><a href="../community.html" title="Community Overview"><span class="none"></span>Community Overview</a></li> + <li><a href="../project-roles.html" title="Project Roles"><span class="none"></span>Project Roles</a></li> + <li><a href="../guides/development/guide-helping.html" title="How to Contribute"><span class="none"></span>How to Contribute</a></li> + <li><a href="../users/getting-help.html" title="Getting Help"><span class="none"></span>Getting Help</a></li> + <li><a href="../issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li> + <li><a href="../scm.html" title="Getting Maven Source"><span class="none"></span>Getting Maven Source</a></li> + <li><a href="../team.html" title="The Maven Team"><span class="none"></span>The Maven Team</a></li> + <li class="nav-header">Project Documentation</li> + <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li> + <li class="nav-header">Maven Projects</li> + <li><a href="../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li> + <li><a href="../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li> + <li><a href="../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li> + <li><a href="../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li> + <li><a href="../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li> + <li><a href="../ref/current" title="Maven"><span class="none"></span>Maven</a></li> + <li><a href="../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li> + <li><a href="../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li> + <li><a href="../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li> + <li><a href="../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li> + <li><a href="../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li> + <li><a href="../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li> + <li><a href="../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li> + <li><a href="../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li> + <li><a href="../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li> + <li><a href="../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li> + <li class="nav-header">ASF</li> + <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li> + <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li> + <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Data Privacy"><span class="none"></span>Data Privacy</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li> + </ul> + </nav> + <div class="well sidebar-nav"> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> +<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> + </div> + </div> + </header> + <main id="bodyColumn" class="span10" > +<section> +<h1><a name="Maven_Artifacts"></a>Maven Artifacts</h1><!-- +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. +--> + +<p>An Artifact is anything (any file) that can be addressed using its coordinates, and Maven downloads, installs or +deploys for you. Most of them are POMs and JARs but +an artifact can be really anything. A very important thing about artifacts is that they have coordinates, +so they are not just files, but they are files that are in some way addressable by Maven.</p> +<p>Artifact coordinates, are most often represented as <code>groupId:artifactId:version</code>, or GAV in short or when +informally used (please note that Artifact coordinates has more fields, but for brevity we still call the +coordinates GAV, not GAVCE). The artifact coordinates uniquely describe the artifact you are referring to, +but does not tell anything about its source (or origin). It is up to Maven to figure out (or you to tell Maven +how to figure it out).</p> +<p>A word about uniqueness: as stated above, GAV coordinates uniquely identifies artifact, but only <strong>within one repository</strong>. +It is clearly possible (but discouraged) to have multiple repositories with overlapping content (so R1 and R2 both +contain artifact with same GAV). If those files are not-identical (truly, ie. hash wise), it may cause severe +issues without you noticing it. In short, these cases should be avoided.</p> +<p>While Maven internally uses the notion of artifact thoroughly (just look at sources!), end users may never hit this term. +That's due the fact, that while for Maven, everything is artifact (internally), Maven end users actually speak about +projects, parent projects, dependencies, build plugins, reporting plugins, build extensions and so on.</p><section> +<h2><a name="Artifact_Properties"></a>Artifact Properties</h2> +<p>The artifacts that Maven (internally) uses has following (for our topic related) properties:</p> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>Name</th> +<th>Description</th></tr></thead><tbody> +<tr class="b"> +<td align="left">groupId</td> +<td>The artifact group</td></tr> +<tr class="a"> +<td align="left">artifactId</td> +<td>The artifact id</td></tr> +<tr class="b"> +<td align="left">version</td> +<td>The artifact version (linked w/ baseVersion)</td></tr> +<tr class="a"> +<td align="left">baseVersion</td> +<td>The artifact base version (linked w/ version)</td></tr> +<tr class="b"> +<td align="left">classifier</td> +<td>The artifact distinguishing classifier (optional)</td></tr> +<tr class="a"> +<td align="left">extension</td> +<td>The artifact extension (default: jar)</td></tr></tbody> +</table> + +<p>One property worth explaining is a bit of special one: <code>baseVersion</code> that is actually derived/linked to +<code>version</code> (or the other way around, depending on the context): for release artifacts, it holds the same value as +<code>version</code>, whereas for snapshot artifacts, it holds the non-timestamped snapshot version. For example, +for snapshot version 1.0-20220119.164608-1, the <code>baseVersion</code> would have the value 1.0-SNAPSHOT. +So, <code>version</code> and <code>baseVersion</code> are linked, derived from each other, but <strong>they have different values only in +case of snapshots</strong>.</p> +<p>Important note about Artifacts: the fact is an artifact a snapshot or not, should be queried with method +<code>Artifact#isSnapshot()</code>.</p></section><section> +<h2><a name="But_where_do_I_set_Artifact_extension.3F"></a>But where do I set Artifact extension?</h2> +<p>In short, nowhere. Or maybe you rarely have to. Maven POM (where you declare your project, parent project, +dependencies, plugins and other), maps those elements onto artifact coordinates with some extra logic.</p> +<p>In case of project and parent project aka POMs (after POM made into effective POM, ie. parent values inherited):</p> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>Artifact Property</th> +<th>Project POM (pom.xml)</th> +<th>POM Artifact</th></tr></thead><tbody> +<tr class="b"> +<td align="left">groupId</td> +<td><code>project/groupId</code></td> +<td>-> groupId</td></tr> +<tr class="a"> +<td align="left">artifactId</td> +<td><code>project/artifactId</code></td> +<td>-> artifactId</td></tr> +<tr class="b"> +<td align="left">version</td> +<td><code>project/version</code></td> +<td>-> version</td></tr> +<tr class="a"> +<td align="left">classifier</td> +<td>-</td> +<td>"" (always)</td></tr> +<tr class="b"> +<td align="left">extension</td> +<td>-</td> +<td><code>pom</code> (always)</td></tr></tbody> +</table> + +<p>In case of build plugins and build extensions, as they are JARs, this is how corresponding elements are mapped +(for build extension change the XML path prefix to <code>project/build/extensions/extension[x]</code>):</p> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>Artifact Property</th> +<th>Plugin in Project POM</th> +<th>Plugin/Extension Artifact</th></tr></thead><tbody> +<tr class="b"> +<td align="left">groupId</td> +<td><code>project/build/plugins/plugin[x]/groupId</code></td> +<td>-> groupId</td></tr> +<tr class="a"> +<td align="left">artifactId</td> +<td><code>project/build/plugins/plugin[x]/artifactId</code></td> +<td>-> artifactId</td></tr> +<tr class="b"> +<td align="left">version</td> +<td><code>project/build/plugins/plugin[x]/version</code></td> +<td>-> version</td></tr> +<tr class="a"> +<td align="left">classifier</td> +<td>-</td> +<td>-> "" (always)</td></tr> +<tr class="b"> +<td align="left">extension</td> +<td>-</td> +<td>-> <code>jar</code> (always)</td></tr></tbody> +</table> + +<p>And finally, in case of dependencies, this is the mapping (no, scope is NOT part of artifact coordinates):</p> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>Artifact Property</th> +<th>Dependency in Project POM</th> +<th>Dependency Artifact</th></tr></thead><tbody> +<tr class="b"> +<td align="left">groupId</td> +<td><code>project/dependencies/dependency[x]/groupId</code></td> +<td>-> groupId</td></tr> +<tr class="a"> +<td align="left">artifactId</td> +<td><code>project/dependencies/dependency[x]/artifactId</code></td> +<td>-> artifactId</td></tr> +<tr class="b"> +<td align="left">version</td> +<td><code>project/dependencies/dependency[x]/version</code></td> +<td>-> version</td></tr> +<tr class="a"> +<td align="left">classifier</td> +<td><code>project/dependencies/dependency[x]/classifier</code></td> +<td>-> classifier</td></tr> +<tr class="b"> +<td align="left">extension</td> +<td><code>project/dependencies/dependency[x]/type</code></td> +<td>-> type handler provided, or same as type</td></tr></tbody> +</table> + +<p>Here, we need to make a short detour to explain type (of a dependency) and how it becomes artifact extension.</p> +<p>Maven for dependencies defines type, that describes what that dependency is (should it be added to classpath and +many other things). Plugins and extensions may define new types, that is usually a must for plugins introducing +a packaging (lifecycle mapping) by providing <code>ArtifactHandler</code> components with name corresponding to type name.</p> +<p>Maven Core out of the box defines following types (handled by same named <code>ArtifactHandler</code> components):</p> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>Type Name</th> +<th>Extension</th> +<th>Classifier</th></tr></thead><tbody> +<tr class="b"> +<td align="left">pom</td> +<td><code>pom</code></td> +<td> </td></tr> +<tr class="a"> +<td align="left">jar</td> +<td><code>jar</code></td> +<td> </td></tr> +<tr class="b"> +<td align="left">maven-plugin</td> +<td><code>jar</code></td> +<td> </td></tr> +<tr class="a"> +<td align="left">ear</td> +<td><code>ear</code></td> +<td> </td></tr> +<tr class="b"> +<td align="left">ejb</td> +<td><code>jar</code></td> +<td> </td></tr> +<tr class="a"> +<td align="left">ejb-client</td> +<td><code>jar</code></td> +<td><code>ejb-client</code></td></tr> +<tr class="b"> +<td align="left">javadoc</td> +<td><code>jar</code></td> +<td><code>javadoc</code></td></tr> +<tr class="a"> +<td align="left">java-source</td> +<td><code>jar</code></td> +<td><code>sources</code></td></tr> +<tr class="b"> +<td align="left">rar</td> +<td><code>rar</code></td> +<td> </td></tr> +<tr class="a"> +<td align="left">test-jar</td> +<td><code>jar</code></td> +<td><code>tests</code></td></tr> +<tr class="b"> +<td align="left">war</td> +<td><code>war</code></td> +<td> </td></tr> +<tr class="a"> +<td align="left"><strong>any</strong></td> +<td>any</td> +<td> </td></tr></tbody> +</table> + +<p>From table above, we can see that if we define the dependency type as war, we will hit the war handler, that will +result in using the <code>war</code> extension (which may not be obvious, as the type and extension we end up with are the same, but internally this +indirection does happen). The test-jar is more obvious, as it translates to <code>jar</code> extension. Finally, the <strong>any</strong> +last row will be used if none above matches, hence in that case your type is used just as extension, for example +you can write <code><type>tar.gz</type></code> for dependency, and you will end up with extension <code>tar.gz</code> (all this happens +because as there is no artifact handler named tar.gz in table above). Still, you should be aware that this table +above may be extended by various plugins and extensions you use in your build!</p> +<p>Also, this has interesting consequences, consider for example following Artifact: +<code>org.project:reusable-test-support:1.0:tests:jar</code>. With type handlers above, maybe surprisingly, the dependency to +this very same artifact can be described in two ways:</p> + +<div class="source"><pre class="prettyprint linenums"><code><dependency> + <groupId>org.project</groupId> + <artifactId>reusable-test-support</artifactId> + <version>1.0</version> + <classifier>tests</classifier> +</dependency> +</code></pre></div> +<p>and the equivalent dependency would be:</p> + +<div class="source"><pre class="prettyprint linenums"><code><dependency> + <groupId>org.project</groupId> + <artifactId>reusable-test-support</artifactId> + <version>1.0</version> + <type>test-jar</type> +</dependency> +</code></pre></div> +<p>Obvious difference is presence of <code>classifier</code> in first case, while in second lack of it but presence of <code>type</code> test-jar, +that in the other hand, implies classifier of tests. In both cases, extension is jar (in first it uses the default +value for this property, while in second type defines it).</p> +<p>Note: In this very case, using the first way is somewhat explicit, and is recommended way. Not so for the +cases when type handler carries some important extra information (like some custom packaging), where using <code>type</code> +is more appropriate. Simply put, in this case the type test-jar is like an alias for ordinary JARs with tests +classifier.</p></section><section> +<h2><a name="Summary"></a>Summary</h2> +<p>In short, this is how various Maven bits like project, parent project, plugin, extension and dependency +have artifact coordinates mapped from POM elements. Using this knowledge, we can always deduce the artifact coordinate +of these POM elements.</p></section></section> + </main> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>© 2002–2022 +<a href="https://www.apache.org/">The Apache Software Foundation</a> +</p> + </div> + </div> + </footer> +<script> + if(anchors) { + anchors.add(); + } +</script> + </body> +</html> \ No newline at end of file
Added: maven/website/content/repositories/index.html ============================================================================== --- maven/website/content/repositories/index.html (added) +++ maven/website/content/repositories/index.html Tue Sep 27 06:14:15 2022 @@ -0,0 +1,204 @@ +<!DOCTYPE html> + + +<!-- + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M3 from content/markdown/repositories/index.md at 2022-09-27 + | Rendered using Apache Maven Fluido Skin 1.11.0 +--> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M3" /> + <title>Maven – Maven Repositories</title> + <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0.min.css" /> + <link rel="stylesheet" href="../css/site.css" /> + <link rel="stylesheet" href="../css/print.css" media="print" /> + <script src="../js/apache-maven-fluido-1.11.0.min.js"></script> + + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '3']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); + </script> + <!-- End Matomo Code --> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <header> + <div id="banner"> + <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><img src="../images/apache-maven-project.png" alt="Apache Maven Site" style="" /></a></div> + <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/maven-logo-black-on-white.png" alt="" style="" /></a></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> + <li class=""><a href="../index.html" title="Maven">Maven</a><span class="divider">/</span></li> + <li class="active ">Maven Repositories <a href="https://github.com/apache/maven-site/tree/master/content/markdown/repositories/index.md"><img src="../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-09-27</li> + <li class="pull-right"><span class="divider">|</span> +<a href="../scm.html" title="Get Sources">Get Sources</a></li> + <li class="pull-right"><a href="../download.cgi" title="Download">Download</a></li> + </ul> + </div> + </header> + <div class="row-fluid"> + <header id="leftColumn" class="span2"> + <nav class="well sidebar-nav"> + <ul class="nav nav-list"> + <li><a href="../index.html" title="Welcome"><span class="none"></span>Welcome</a></li> + <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li> + <li class="nav-header">About Maven</li> + <li><a href="../what-is-maven.html" title="What is Maven?"><span class="none"></span>What is Maven?</a></li> + <li><a href="../maven-features.html" title="Features"><span class="none"></span>Features</a></li> + <li><a href="../download.html" title="Download"><span class="none"></span>Download</a></li> + <li><a href="../users/index.html" title="Use"><span class="icon-chevron-right"></span>Use</a></li> + <li><a href="../docs/history.html" title="Release Notes"><span class="none"></span>Release Notes</a></li> + <li class="nav-header">Documentation</li> + <li><a href="../plugins/index.html" title="Maven Plugins"><span class="none"></span>Maven Plugins</a></li> + <li><a href="../extensions/index.html" title="Maven Extensions"><span class="none"></span>Maven Extensions</a></li> + <li><a href="../guides/index.html" title="Index (category)"><span class="none"></span>Index (category)</a></li> + <li><a href="../users/index.html" title="User Centre"><span class="icon-chevron-right"></span>User Centre</a></li> + <li><a href="../plugin-developers/index.html" title="Plugin Developer Centre"><span class="icon-chevron-right"></span>Plugin Developer Centre</a></li> + <li class="active"><a><span class="icon-chevron-down"></span>Maven Repository Centre</a> + <ul class="nav nav-list"> + <li><a href="../repository/index.html" title="Maven Central Repository"><span class="icon-chevron-right"></span>Maven Central Repository</a></li> + <li><a href="../repositories/artifacts.html" title="Maven Artifacts"><span class="none"></span>Maven Artifacts</a></li> + <li><a href="../repositories/metadata.html" title="Maven Metadata"><span class="none"></span>Maven Metadata</a></li> + <li><a href="../repositories/layout.html" title="Maven Layout"><span class="none"></span>Maven Layout</a></li> + <li><a href="../repositories/local.html" title="Maven Local Repository"><span class="none"></span>Maven Local Repository</a></li> + <li><a href="../repositories/remote.html" title="Maven Remote Repositories"><span class="none"></span>Maven Remote Repositories</a></li> + </ul></li> + <li><a href="../developers/index.html" title="Maven Developer Centre"><span class="icon-chevron-right"></span>Maven Developer Centre</a></li> + <li><a href="../articles.html" title="Books and Resources"><span class="none"></span>Books and Resources</a></li> + <li><a href="../security.html" title="Security"><span class="none"></span>Security</a></li> + <li class="nav-header">Community</li> + <li><a href="../community.html" title="Community Overview"><span class="none"></span>Community Overview</a></li> + <li><a href="../project-roles.html" title="Project Roles"><span class="none"></span>Project Roles</a></li> + <li><a href="../guides/development/guide-helping.html" title="How to Contribute"><span class="none"></span>How to Contribute</a></li> + <li><a href="../users/getting-help.html" title="Getting Help"><span class="none"></span>Getting Help</a></li> + <li><a href="../issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li> + <li><a href="../scm.html" title="Getting Maven Source"><span class="none"></span>Getting Maven Source</a></li> + <li><a href="../team.html" title="The Maven Team"><span class="none"></span>The Maven Team</a></li> + <li class="nav-header">Project Documentation</li> + <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li> + <li class="nav-header">Maven Projects</li> + <li><a href="../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li> + <li><a href="../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li> + <li><a href="../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li> + <li><a href="../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li> + <li><a href="../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li> + <li><a href="../ref/current" title="Maven"><span class="none"></span>Maven</a></li> + <li><a href="../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li> + <li><a href="../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li> + <li><a href="../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li> + <li><a href="../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li> + <li><a href="../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li> + <li><a href="../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li> + <li><a href="../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li> + <li><a href="../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li> + <li><a href="../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li> + <li><a href="../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li> + <li class="nav-header">ASF</li> + <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li> + <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li> + <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Data Privacy"><span class="none"></span>Data Privacy</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li> + </ul> + </nav> + <div class="well sidebar-nav"> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> +<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> + </div> + </div> + </header> + <main id="bodyColumn" class="span10" > +<section> +<h1><a name="Maven_Repositories"></a>Maven Repositories</h1><!-- +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. +--> + +<p>Apache Maven uses repositories to store artifacts. Your dependencies are being downloaded from repositories, +and artifacts you build are being stored (installed, uploaded) into repositories as well. This is one of the +fundamental concepts of Maven since its inception: Maven command line tool and Maven Repositories were mold together +and developed since the beginning of Maven project itself.</p> + +<p align="center"> +<img src="../repository/maven-repositories.png" border="0" usemap="#map" alt="" /> +<map name="map"> + <area shape="rect" coords="596,326,666,363" alt="JBoss" href="http://repository.jboss.org/maven2/" /> + <area shape="rect" coords="0,184,460,421" alt="central (default)" href="../repository/index.html" /> + <area shape="rect" coords="187,593,277,629" alt="Maven" href="/what-is-maven.html" /> + <area shape="rect" coords="280,628,403,649" alt="local repository" href="/guides/mini/guide-configuring-maven.html" /> + <area shape="rect" coords="364,498,570,534" alt="Repository Manager" href="/repository-management.html" /> + <area shape="rect" coords="303,545,451,584" alt="settings.xml <mirrorOf>" href="/guides/mini/guide-mirror-settings.html" /> + <area shape="rect" coords="407,589,628,653" alt="pom.xml <repository>" href="/guides/mini/guide-multiple-repositories.html" /> +</map> +</p> + +<p>See also the <a href="/guides/introduction/introduction-to-repositories.html">Introduction to Repositories</a> and <a href="../repository/layout.html">Repository Layout</a>.</p> +<p>As you may know, Maven addresses artifacts using artifact coordinates. The artifact coordinates uniquely describe the artifact +you are referring to, but does not tell anything about its source (or origin). This is where +Maven Repositories come into picture, that holds the artifacts laid out (published) according to Maven Repository +Layout. And this is where the circle closes: artifacts, being laid out in defined layout, consumed and published +by Maven.</p> +<p>Sections:</p> +<ul> + +<li><a href="artifacts.html">Artifacts</a></li> +<li><a href="metadata.html">Metadata</a></li> +<li><a href="layout.html">Layout</a></li> +<li><a href="local.html">Local Repositories</a></li> +<li><a href="remote.html">Remote Repositories</a></li> +</ul></section> + </main> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>© 2002–2022 +<a href="https://www.apache.org/">The Apache Software Foundation</a> +</p> + </div> + </div> + </footer> +<script> + if(anchors) { + anchors.add(); + } +</script> + </body> +</html> \ No newline at end of file Added: maven/website/content/repositories/layout.html ============================================================================== --- maven/website/content/repositories/layout.html (added) +++ maven/website/content/repositories/layout.html Tue Sep 27 06:14:15 2022 @@ -0,0 +1,235 @@ +<!DOCTYPE html> + + +<!-- + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M3 from content/markdown/repositories/layout.md at 2022-09-27 + | Rendered using Apache Maven Fluido Skin 1.11.0 +--> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M3" /> + <title>Maven – Maven Repository Layout</title> + <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0.min.css" /> + <link rel="stylesheet" href="../css/site.css" /> + <link rel="stylesheet" href="../css/print.css" media="print" /> + <script src="../js/apache-maven-fluido-1.11.0.min.js"></script> + + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '3']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); + </script> + <!-- End Matomo Code --> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <header> + <div id="banner"> + <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><img src="../images/apache-maven-project.png" alt="Apache Maven Site" style="" /></a></div> + <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/maven-logo-black-on-white.png" alt="" style="" /></a></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> + <li class=""><a href="../index.html" title="Maven">Maven</a><span class="divider">/</span></li> + <li class="active ">Maven Repository Layout <a href="https://github.com/apache/maven-site/tree/master/content/markdown/repositories/layout.md"><img src="../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-09-27</li> + <li class="pull-right"><span class="divider">|</span> +<a href="../scm.html" title="Get Sources">Get Sources</a></li> + <li class="pull-right"><a href="../download.cgi" title="Download">Download</a></li> + </ul> + </div> + </header> + <div class="row-fluid"> + <header id="leftColumn" class="span2"> + <nav class="well sidebar-nav"> + <ul class="nav nav-list"> + <li><a href="../index.html" title="Welcome"><span class="none"></span>Welcome</a></li> + <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li> + <li class="nav-header">About Maven</li> + <li><a href="../what-is-maven.html" title="What is Maven?"><span class="none"></span>What is Maven?</a></li> + <li><a href="../maven-features.html" title="Features"><span class="none"></span>Features</a></li> + <li><a href="../download.html" title="Download"><span class="none"></span>Download</a></li> + <li><a href="../users/index.html" title="Use"><span class="icon-chevron-right"></span>Use</a></li> + <li><a href="../docs/history.html" title="Release Notes"><span class="none"></span>Release Notes</a></li> + <li class="nav-header">Documentation</li> + <li><a href="../plugins/index.html" title="Maven Plugins"><span class="none"></span>Maven Plugins</a></li> + <li><a href="../extensions/index.html" title="Maven Extensions"><span class="none"></span>Maven Extensions</a></li> + <li><a href="../guides/index.html" title="Index (category)"><span class="none"></span>Index (category)</a></li> + <li><a href="../users/index.html" title="User Centre"><span class="icon-chevron-right"></span>User Centre</a></li> + <li><a href="../plugin-developers/index.html" title="Plugin Developer Centre"><span class="icon-chevron-right"></span>Plugin Developer Centre</a></li> + <li><a href="../repositories/index.html" title="Maven Repository Centre"><span class="icon-chevron-down"></span>Maven Repository Centre</a> + <ul class="nav nav-list"> + <li><a href="../repository/index.html" title="Maven Central Repository"><span class="icon-chevron-right"></span>Maven Central Repository</a></li> + <li><a href="../repositories/artifacts.html" title="Maven Artifacts"><span class="none"></span>Maven Artifacts</a></li> + <li><a href="../repositories/metadata.html" title="Maven Metadata"><span class="none"></span>Maven Metadata</a></li> + <li class="active"><a><span class="none"></span>Maven Layout</a></li> + <li><a href="../repositories/local.html" title="Maven Local Repository"><span class="none"></span>Maven Local Repository</a></li> + <li><a href="../repositories/remote.html" title="Maven Remote Repositories"><span class="none"></span>Maven Remote Repositories</a></li> + </ul></li> + <li><a href="../developers/index.html" title="Maven Developer Centre"><span class="icon-chevron-right"></span>Maven Developer Centre</a></li> + <li><a href="../articles.html" title="Books and Resources"><span class="none"></span>Books and Resources</a></li> + <li><a href="../security.html" title="Security"><span class="none"></span>Security</a></li> + <li class="nav-header">Community</li> + <li><a href="../community.html" title="Community Overview"><span class="none"></span>Community Overview</a></li> + <li><a href="../project-roles.html" title="Project Roles"><span class="none"></span>Project Roles</a></li> + <li><a href="../guides/development/guide-helping.html" title="How to Contribute"><span class="none"></span>How to Contribute</a></li> + <li><a href="../users/getting-help.html" title="Getting Help"><span class="none"></span>Getting Help</a></li> + <li><a href="../issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li> + <li><a href="../scm.html" title="Getting Maven Source"><span class="none"></span>Getting Maven Source</a></li> + <li><a href="../team.html" title="The Maven Team"><span class="none"></span>The Maven Team</a></li> + <li class="nav-header">Project Documentation</li> + <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li> + <li class="nav-header">Maven Projects</li> + <li><a href="../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li> + <li><a href="../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li> + <li><a href="../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li> + <li><a href="../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li> + <li><a href="../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li> + <li><a href="../ref/current" title="Maven"><span class="none"></span>Maven</a></li> + <li><a href="../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li> + <li><a href="../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li> + <li><a href="../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li> + <li><a href="../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li> + <li><a href="../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li> + <li><a href="../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li> + <li><a href="../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li> + <li><a href="../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li> + <li><a href="../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li> + <li><a href="../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li> + <li class="nav-header">ASF</li> + <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li> + <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li> + <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Data Privacy"><span class="none"></span>Data Privacy</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li> + </ul> + </nav> + <div class="well sidebar-nav"> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> +<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> + </div> + </div> + </header> + <main id="bodyColumn" class="span10" > +<section> +<h1><a name="Maven_Repository_Layout"></a>Maven Repository Layout</h1><!-- +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. +--> + +<p>The layout is responsible for translating the <a href="artifacts.html">artifact coordinates</a> into generic paths, that is later used to construct some +URI (file path, URL, it depends on context). Obviously, since Maven inception in 2002 the layout evolved as well. +For simplicity, we will cover current layout (aka maven2 or default), as since Maven 3.x release, the deprecated +Maven1 layout (aka legacy) is not supported anymore.</p> +<p>This above implies following: if the repository contains a file that is not on layout (does not obey layout +transformation rules discussed below), that file is not addressable by Maven coordinates, you cannot address that file +in Maven nor make it to download it using GAV coordinates!</p> +<p>The original premise of layout was simplicity: from historical perspective, a remote repository was expected to be run +by some computer with file storage (where artifacts were laid down) and served by a HTTP server, essentially publishing +the files on file paths for consumption (mainly for HTTP GET requests).</p> +<p>The transformation rule is quite simple for that matter: consider artifact properties below:</p> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>Name</th> +<th>Transformation</th> +<th>Result example</th></tr></thead><tbody> +<tr class="b"> +<td align="left">groupId</td> +<td>Replace . (dot) characters with / (slash) character</td> +<td><code>org.apache.maven</code> -> <code>org/apache/maven</code></td></tr> +<tr class="a"> +<td align="left">artifactId</td> +<td>none</td> +<td><code>apache-maven</code> -> <code>apache-maven</code></td></tr> +<tr class="b"> +<td align="left">version</td> +<td>none</td> +<td><code>3.8.4</code> -> <code>3.8.4</code></td></tr> +<tr class="a"> +<td align="left">baseVersion</td> +<td>none</td> +<td>(in this example same as version)</td></tr> +<tr class="b"> +<td align="left">classifier</td> +<td>none</td> +<td><code>bin</code> -> <code>bin</code></td></tr> +<tr class="a"> +<td align="left">extension</td> +<td>none</td> +<td><code>tar.gz</code> -> <code>tar.gz</code></td></tr></tbody> +</table> + +<p>And using these properties transformed as above we can construct following path (if classifier not present):</p> + +<div class="source"><pre class="prettyprint linenums"><code>${groupId}/${artifactId}/${baseVersion}/${artifactId}-${version}.${extension} +</code></pre></div> +<p>or if classifier present:</p> + +<div class="source"><pre class="prettyprint linenums"><code>${groupId}/${artifactId}/${baseVersion}/${artifactId}-${version}-${classifier}.${extension} +</code></pre></div> +<p>So the example artifact above noted as GAV:</p> + +<div class="source"><pre class="prettyprint linenums"><code>org.apache.maven:apache-maven:3.8.4:bin:tar.gz +</code></pre></div> +<p>is translated to path as:</p> + +<div class="source"><pre class="prettyprint linenums"><code>org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.tar.gz +</code></pre></div> +<p>And that is it! By applying this algorithm above to ANY Artifact we can build up the path segment that +artifact is expected to be.</p> +<p>Important note: in case of locally installed artifacts (those you built locally and invoked <code>mvn install</code>) will use +Artifact baseVersion property instead of version. The full-blown timestamped versions are used only in +remote repositories, when the artifact is deployed.</p></section> + </main> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>© 2002–2022 +<a href="https://www.apache.org/">The Apache Software Foundation</a> +</p> + </div> + </div> + </footer> +<script> + if(anchors) { + anchors.add(); + } +</script> + </body> +</html> \ No newline at end of file Added: maven/website/content/repositories/local.html ============================================================================== --- maven/website/content/repositories/local.html (added) +++ maven/website/content/repositories/local.html Tue Sep 27 06:14:15 2022 @@ -0,0 +1,188 @@ +<!DOCTYPE html> + + +<!-- + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M3 from content/markdown/repositories/local.md at 2022-09-27 + | Rendered using Apache Maven Fluido Skin 1.11.0 +--> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M3" /> + <title>Maven – Maven Local Repositories</title> + <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0.min.css" /> + <link rel="stylesheet" href="../css/site.css" /> + <link rel="stylesheet" href="../css/print.css" media="print" /> + <script src="../js/apache-maven-fluido-1.11.0.min.js"></script> + + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '3']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); + </script> + <!-- End Matomo Code --> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <header> + <div id="banner"> + <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><img src="../images/apache-maven-project.png" alt="Apache Maven Site" style="" /></a></div> + <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/maven-logo-black-on-white.png" alt="" style="" /></a></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> + <li class=""><a href="../index.html" title="Maven">Maven</a><span class="divider">/</span></li> + <li class="active ">Maven Local Repositories <a href="https://github.com/apache/maven-site/tree/master/content/markdown/repositories/local.md"><img src="../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-09-27</li> + <li class="pull-right"><span class="divider">|</span> +<a href="../scm.html" title="Get Sources">Get Sources</a></li> + <li class="pull-right"><a href="../download.cgi" title="Download">Download</a></li> + </ul> + </div> + </header> + <div class="row-fluid"> + <header id="leftColumn" class="span2"> + <nav class="well sidebar-nav"> + <ul class="nav nav-list"> + <li><a href="../index.html" title="Welcome"><span class="none"></span>Welcome</a></li> + <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li> + <li class="nav-header">About Maven</li> + <li><a href="../what-is-maven.html" title="What is Maven?"><span class="none"></span>What is Maven?</a></li> + <li><a href="../maven-features.html" title="Features"><span class="none"></span>Features</a></li> + <li><a href="../download.html" title="Download"><span class="none"></span>Download</a></li> + <li><a href="../users/index.html" title="Use"><span class="icon-chevron-right"></span>Use</a></li> + <li><a href="../docs/history.html" title="Release Notes"><span class="none"></span>Release Notes</a></li> + <li class="nav-header">Documentation</li> + <li><a href="../plugins/index.html" title="Maven Plugins"><span class="none"></span>Maven Plugins</a></li> + <li><a href="../extensions/index.html" title="Maven Extensions"><span class="none"></span>Maven Extensions</a></li> + <li><a href="../guides/index.html" title="Index (category)"><span class="none"></span>Index (category)</a></li> + <li><a href="../users/index.html" title="User Centre"><span class="icon-chevron-right"></span>User Centre</a></li> + <li><a href="../plugin-developers/index.html" title="Plugin Developer Centre"><span class="icon-chevron-right"></span>Plugin Developer Centre</a></li> + <li><a href="../repositories/index.html" title="Maven Repository Centre"><span class="icon-chevron-down"></span>Maven Repository Centre</a> + <ul class="nav nav-list"> + <li><a href="../repository/index.html" title="Maven Central Repository"><span class="icon-chevron-right"></span>Maven Central Repository</a></li> + <li><a href="../repositories/artifacts.html" title="Maven Artifacts"><span class="none"></span>Maven Artifacts</a></li> + <li><a href="../repositories/metadata.html" title="Maven Metadata"><span class="none"></span>Maven Metadata</a></li> + <li><a href="../repositories/layout.html" title="Maven Layout"><span class="none"></span>Maven Layout</a></li> + <li class="active"><a><span class="none"></span>Maven Local Repository</a></li> + <li><a href="../repositories/remote.html" title="Maven Remote Repositories"><span class="none"></span>Maven Remote Repositories</a></li> + </ul></li> + <li><a href="../developers/index.html" title="Maven Developer Centre"><span class="icon-chevron-right"></span>Maven Developer Centre</a></li> + <li><a href="../articles.html" title="Books and Resources"><span class="none"></span>Books and Resources</a></li> + <li><a href="../security.html" title="Security"><span class="none"></span>Security</a></li> + <li class="nav-header">Community</li> + <li><a href="../community.html" title="Community Overview"><span class="none"></span>Community Overview</a></li> + <li><a href="../project-roles.html" title="Project Roles"><span class="none"></span>Project Roles</a></li> + <li><a href="../guides/development/guide-helping.html" title="How to Contribute"><span class="none"></span>How to Contribute</a></li> + <li><a href="../users/getting-help.html" title="Getting Help"><span class="none"></span>Getting Help</a></li> + <li><a href="../issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li> + <li><a href="../scm.html" title="Getting Maven Source"><span class="none"></span>Getting Maven Source</a></li> + <li><a href="../team.html" title="The Maven Team"><span class="none"></span>The Maven Team</a></li> + <li class="nav-header">Project Documentation</li> + <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li> + <li class="nav-header">Maven Projects</li> + <li><a href="../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li> + <li><a href="../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li> + <li><a href="../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li> + <li><a href="../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li> + <li><a href="../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li> + <li><a href="../ref/current" title="Maven"><span class="none"></span>Maven</a></li> + <li><a href="../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li> + <li><a href="../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li> + <li><a href="../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li> + <li><a href="../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li> + <li><a href="../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li> + <li><a href="../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li> + <li><a href="../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li> + <li><a href="../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li> + <li><a href="../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li> + <li><a href="../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li> + <li class="nav-header">ASF</li> + <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li> + <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li> + <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Data Privacy"><span class="none"></span>Data Privacy</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li> + </ul> + </nav> + <div class="well sidebar-nav"> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> +<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> + </div> + </div> + </header> + <main id="bodyColumn" class="span10" > +<section> +<h1><a name="Maven_Local_Repositories"></a>Maven Local Repositories</h1><!-- +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. +--> + +<p>The local repository is a mixed bag, in sense, that it serves two purposes: it caches downloaded artifacts from +remote repositories along with locally built and installed ones.</p> +<p>While the local repository does reside on local filesystem, users should <strong>never</strong> reach for its contents directly +using plain file operations, but use the provided API instead. Reason for this strict expectation is that even +today different implementations of local repository exists. Hence, reverse engineering the layout and direct +access to locally cached or installed files may not only break in the future, but may also circumvent important +aspects like locking and synchronization, and so forth. Latest resolver even implements split local repository, +where user may configure local repository to split the installed and cached artifacts, hence to make them physically +split from each other.</p> +<p>All these underlying changes remain hidden from code using local repository API, and hence, the code will +be more robust and time proof.</p><section> +<h2><a name="The_baseVersion_Artifact_Property"></a>The <code>baseVersion</code> Artifact Property</h2> +<p>As noted in <a href="layout.html">Layout</a> page, locally built and installed (implies to local repository) artifacts will use +<code>baseVersion</code> while calculating layout. Hence, in this case both, <code>baseVersion</code> and <code>version</code> of them will both +contain same value, the one ending with SNAPSHOT constant string, no transformation is applied to file name.</p> +<p>Snapshots pulled from remote and cached in local repository will have timestamped <code>version</code> property instead, hence +they will have the full-blown timestamped version applied to file name.</p></section></section> + </main> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>© 2002–2022 +<a href="https://www.apache.org/">The Apache Software Foundation</a> +</p> + </div> + </div> + </footer> +<script> + if(anchors) { + anchors.add(); + } +</script> + </body> +</html> \ No newline at end of file Added: maven/website/content/repositories/metadata.html ============================================================================== --- maven/website/content/repositories/metadata.html (added) +++ maven/website/content/repositories/metadata.html Tue Sep 27 06:14:15 2022 @@ -0,0 +1,273 @@ +<!DOCTYPE html> + + +<!-- + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M3 from content/markdown/repositories/metadata.md at 2022-09-27 + | Rendered using Apache Maven Fluido Skin 1.11.0 +--> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M3" /> + <title>Maven – Maven Metadata</title> + <link rel="stylesheet" href="../css/apache-maven-fluido-1.11.0.min.css" /> + <link rel="stylesheet" href="../css/site.css" /> + <link rel="stylesheet" href="../css/print.css" media="print" /> + <script src="../js/apache-maven-fluido-1.11.0.min.js"></script> + + <!-- Matomo --> + <script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org/"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '3']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); + </script> + <!-- End Matomo Code --> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <header> + <div id="banner"> + <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><img src="../images/apache-maven-project.png" alt="Apache Maven Site" style="" /></a></div> + <div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/maven-logo-black-on-white.png" alt="" style="" /></a></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> + <li class=""><a href="../index.html" title="Maven">Maven</a><span class="divider">/</span></li> + <li class="active ">Maven Metadata <a href="https://github.com/apache/maven-site/tree/master/content/markdown/repositories/metadata.md"><img src="../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2022-09-27</li> + <li class="pull-right"><span class="divider">|</span> +<a href="../scm.html" title="Get Sources">Get Sources</a></li> + <li class="pull-right"><a href="../download.cgi" title="Download">Download</a></li> + </ul> + </div> + </header> + <div class="row-fluid"> + <header id="leftColumn" class="span2"> + <nav class="well sidebar-nav"> + <ul class="nav nav-list"> + <li><a href="../index.html" title="Welcome"><span class="none"></span>Welcome</a></li> + <li><a href="https://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li> + <li class="nav-header">About Maven</li> + <li><a href="../what-is-maven.html" title="What is Maven?"><span class="none"></span>What is Maven?</a></li> + <li><a href="../maven-features.html" title="Features"><span class="none"></span>Features</a></li> + <li><a href="../download.html" title="Download"><span class="none"></span>Download</a></li> + <li><a href="../users/index.html" title="Use"><span class="icon-chevron-right"></span>Use</a></li> + <li><a href="../docs/history.html" title="Release Notes"><span class="none"></span>Release Notes</a></li> + <li class="nav-header">Documentation</li> + <li><a href="../plugins/index.html" title="Maven Plugins"><span class="none"></span>Maven Plugins</a></li> + <li><a href="../extensions/index.html" title="Maven Extensions"><span class="none"></span>Maven Extensions</a></li> + <li><a href="../guides/index.html" title="Index (category)"><span class="none"></span>Index (category)</a></li> + <li><a href="../users/index.html" title="User Centre"><span class="icon-chevron-right"></span>User Centre</a></li> + <li><a href="../plugin-developers/index.html" title="Plugin Developer Centre"><span class="icon-chevron-right"></span>Plugin Developer Centre</a></li> + <li><a href="../repositories/index.html" title="Maven Repository Centre"><span class="icon-chevron-down"></span>Maven Repository Centre</a> + <ul class="nav nav-list"> + <li><a href="../repository/index.html" title="Maven Central Repository"><span class="icon-chevron-right"></span>Maven Central Repository</a></li> + <li><a href="../repositories/artifacts.html" title="Maven Artifacts"><span class="none"></span>Maven Artifacts</a></li> + <li class="active"><a><span class="none"></span>Maven Metadata</a></li> + <li><a href="../repositories/layout.html" title="Maven Layout"><span class="none"></span>Maven Layout</a></li> + <li><a href="../repositories/local.html" title="Maven Local Repository"><span class="none"></span>Maven Local Repository</a></li> + <li><a href="../repositories/remote.html" title="Maven Remote Repositories"><span class="none"></span>Maven Remote Repositories</a></li> + </ul></li> + <li><a href="../developers/index.html" title="Maven Developer Centre"><span class="icon-chevron-right"></span>Maven Developer Centre</a></li> + <li><a href="../articles.html" title="Books and Resources"><span class="none"></span>Books and Resources</a></li> + <li><a href="../security.html" title="Security"><span class="none"></span>Security</a></li> + <li class="nav-header">Community</li> + <li><a href="../community.html" title="Community Overview"><span class="none"></span>Community Overview</a></li> + <li><a href="../project-roles.html" title="Project Roles"><span class="none"></span>Project Roles</a></li> + <li><a href="../guides/development/guide-helping.html" title="How to Contribute"><span class="none"></span>How to Contribute</a></li> + <li><a href="../users/getting-help.html" title="Getting Help"><span class="none"></span>Getting Help</a></li> + <li><a href="../issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li> + <li><a href="../scm.html" title="Getting Maven Source"><span class="none"></span>Getting Maven Source</a></li> + <li><a href="../team.html" title="The Maven Team"><span class="none"></span>The Maven Team</a></li> + <li class="nav-header">Project Documentation</li> + <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li> + <li class="nav-header">Maven Projects</li> + <li><a href="../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li> + <li><a href="../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li> + <li><a href="../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li> + <li><a href="../extensions/index.html" title="Extensions"><span class="none"></span>Extensions</a></li> + <li><a href="../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li> + <li><a href="../ref/current" title="Maven"><span class="none"></span>Maven</a></li> + <li><a href="../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li> + <li><a href="../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li> + <li><a href="../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li> + <li><a href="../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li> + <li><a href="../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li> + <li><a href="../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li> + <li><a href="../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li> + <li><a href="../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li> + <li><a href="../surefire/index.html" title="Surefire"><span class="none"></span>Surefire</a></li> + <li><a href="../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li> + <li class="nav-header">ASF</li> + <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li> + <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li> + <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Data Privacy"><span class="none"></span>Data Privacy</a></li> + <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li> + <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li> + </ul> + </nav> + <div class="well sidebar-nav"> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> +<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> + </div> + </div> + </header> + <main id="bodyColumn" class="span10" > +<section> +<h1><a name="Maven_Metadata"></a>Maven Metadata</h1><!-- +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. +--> + +<p>Repositories contain metadata (aka repository metadata) files as well, that enables several discovery and resolution-like operations +for Maven. These metadata files are <strong>not</strong> Artifacts, and hence, are not addressable by Maven users. They are instead +transparently operated and handled by Maven itself in automatic manner. These files are XML files named as +<code>maven-metadata.xml</code> (are deployed with checksums just like artifacts are).</p> +<p>Links:</p> +<ul> + +<li><a href="/xsd/repository-metadata-1.1.0.xsd">XML Schema</a></li> +<li><a href="https://gitbox.apache.org/repos/asf?p=maven.git;a=blob_plain;f=maven-repository-metadata/src/main/mdo/metadata.mdo;hb=HEAD" class="externalLink">Modello model</a></li> +</ul> +<p>We distinguish 3 different kinds of metadata files (using GAV coordinates):</p> +<ul> + +<li>G level metadata</li> +<li>A level metadata</li> +<li>V level metadata</li> +</ul> +<p>These metadata XML files share same XML schema (model), and the reason of that is simple: one XML file may carry multiple +kinds of metadata (for different Artifacts)! Consider these two artifacts: <code>org.foo:bar:1.0</code> and <code>org.foo.bar:baz:1.0</code>. +With default layout, the repository path <code>org/foo/bar</code> is once A level for first, and G level for second artifact. +Note: this is extreme example, and such artifact naming should be avoided!</p><section> +<h2><a name="The_G_Level_Metadata"></a>The G Level Metadata</h2> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>What</th> +<th>How</th></tr></thead><tbody> +<tr class="b"> +<td align="left">Location</td> +<td>Path corresponding to groupId</td></tr> +<tr class="a"> +<td align="left">Repositories containing it</td> +<td>Release and Snapshots</td></tr> +<tr class="b"> +<td align="left">Artifacts related to them</td> +<td>Only <code>maven-plugin</code> packaged</td></tr></tbody> +</table> + +<p>The group level metadata (found in directory of groupId) serves purpose only in case of Maven Plugins +(POM packaging: maven-plugin). This metadata contains mapping of <code>plugin prefix</code> to <code>artifactId</code>, and the XML bit +considered for this kind of metadata is <code>metadata/plugins/plugin[]</code> path only.</p> +<p>Example: <a href="https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml" class="externalLink">https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml</a></p> +<p>When user uses some plugin prefix on CLI, Maven will go through registered <code>pluginGroups</code> groupIds, download their +G level metadata, and look for prefix. If found, Maven has obtained G (from pluginGroups) and A (from metadata) +coordinates of plugin, and will go for given version, or attempt to discover latest version.</p></section><section> +<h2><a name="The_A_Level_Metadata"></a>The A Level Metadata</h2> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>What</th> +<th>How</th></tr></thead><tbody> +<tr class="b"> +<td align="left">Location</td> +<td>Path corresponding to artifactId</td></tr> +<tr class="a"> +<td align="left">Repositories containing it</td> +<td>Release and Snapshots</td></tr> +<tr class="b"> +<td align="left">Artifacts related to them</td> +<td>All</td></tr></tbody> +</table> + +<p>The artifactId level metadata (found in directory of artifactId) serves purpose of version discovery. This metadata +contains list of versions of given GA coordinates. The XML bit considered for this kind of metadata are only:</p> +<ul> + +<li><code>metadata/groupId</code></li> +<li><code>metadata/artifactId</code></li> +<li><code>metadata/versionining/latest</code></li> +<li><code>metadata/versionining/release</code></li> +<li><code>metadata/versionining/versions/*</code></li> +<li><code>metadata/versionining/lastUpdated</code></li> +</ul> +<p>Example: <a href="https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/maven-metadata.xml" class="externalLink">https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/maven-metadata.xml</a></p></section><section> +<h2><a name="The_V_Level_Metadata"></a>The V Level Metadata</h2> +<table border="0" class="table table-striped"> +<thead> +<tr class="a"> +<th>What</th> +<th>How</th></tr></thead><tbody> +<tr class="b"> +<td align="left">Location</td> +<td>Path corresponding to baseVersion</td></tr> +<tr class="a"> +<td align="left">Repositories containing it</td> +<td>Snapshots only</td></tr> +<tr class="b"> +<td align="left">Artifacts related to them</td> +<td>Only Snapshots</td></tr></tbody> +</table> + +<p>Exists only in Snapshot Remote repositories. The version level metadata (found in directory of baseVersion) serves the +purpose of snapshot timestamped version resolution. This metadata contains mapping of all artifacts in this baseVersion +directory with corresponding timestamps. The XML bit considered for this kind of metadata are only:</p> +<ul> + +<li><code>metadata/groupId</code></li> +<li><code>metadata/artifactId</code></li> +<li><code>metadata/versionining/snapshot/*</code></li> +<li><code>metadata/versionining/snapshotVersions/*</code></li> +</ul> +<p>Example: <a href="https://repository.apache.org/content/repositories/snapshots/org/apache/maven/plugins/maven-jar-plugin/3.3.0-SNAPSHOT/maven-metadata.xml" class="externalLink">https://repository.apache.org/content/repositories/snapshots/org/apache/maven/plugins/maven-jar-plugin/3.3.0-SNAPSHOT/maven-metadata.xml</a></p></section></section> + </main> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>© 2002–2022 +<a href="https://www.apache.org/">The Apache Software Foundation</a> +</p> + </div> + </div> + </footer> +<script> + if(anchors) { + anchors.add(); + } +</script> + </body> +</html> \ No newline at end of file
