Modified: maven/website/content/guides/mini/guide-new-committers.html ============================================================================== --- maven/website/content/guides/mini/guide-new-committers.html (original) +++ maven/website/content/guides/mini/guide-new-committers.html Sun May 12 07:42:36 2024 @@ -2,17 +2,17 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-new-committers.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-new-committers.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Jason van Zyl" /> <meta name="date" content="2005-11-20" /> - <title>Maven</title> + <title>Maven â Guide for new committers</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -39,10 +39,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -50,9 +48,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-new-committers.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide for new committers <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-new-committers.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -131,7 +128,7 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Guide_for_new_committers"></a> +<section> <h1>Guide for new committers</h1> <p>First thing is to sort out some administrative tasks. Before your account is created and commit access granted you must complete and fax back to Apache the <a class="externalLink" href="http://www.apache.org/licenses/#clas">Committer's License Agreement</a>.</p> <p>While this process is sorting itself out it is recommended that you peruse the various guides provided by Apache. All the guides are located in the <a class="externalLink" href="http://www.apache.org/dev/">Development Infrastructure Information</a>.</p>
Modified: maven/website/content/guides/mini/guide-proxies.html ============================================================================== --- maven/website/content/guides/mini/guide-proxies.html (original) +++ maven/website/content/guides/mini/guide-proxies.html Sun May 12 07:42:36 2024 @@ -2,17 +2,17 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-proxies.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-proxies.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Jason van Zyl" /> <meta name="date" content="2005-10-12" /> - <title>Maven</title> + <title>Maven â Guide to using proxies</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -39,10 +39,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -50,9 +48,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-proxies.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide to using proxies <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-proxies.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -162,11 +159,11 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Configuring_a_proxy"></a> +<section> <h1>Configuring a proxy</h1> <p>You can configure a proxy to use for some or all of your HTTP requests with Maven. The username and password are only required if your proxy requires basic authentication (note that later releases may support storing your passwords in a secured keystore - in the mean time, please ensure your settings.xml file (usually ${user.home}/.m2/settings.xml) is secured with permissions appropriate for your operating system).</p> <p>The <code>nonProxyHosts</code> setting accepts wild cards, and each host not to proxy is separated by the | character. This matches the JDK configuration equivalent.</p> -<pre><code> +<div class="verbatim source"><pre class="prettyprint linenums"> <settings> . . @@ -185,10 +182,10 @@ . . </settings> -</code></pre> -<p>Please note that currently NTLM proxies are not supported as they have not been tested. Some transports allow to use the relevant Java system properties to make this work, but that approach is specific for given implementation, and should not be considered the "official" way of configuring proxies.</p><section><a id="Resources"></a> +</pre></div> +<p>Please note that currently NTLM proxies are not supported as they have not been tested. Some transports allow to use the relevant Java system properties to make this work, but that approach is specific for given implementation, and should not be considered the "official" way of configuring proxies.</p><section> <h2>Resources</h2> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li><a href="../../maven-settings/settings.html">Settings descriptor documentation</a></li> <li><a href="./guide-configuring-maven.html">Configuring Maven</a></li></ol></section></section> </main> Modified: maven/website/content/guides/mini/guide-releasing.html ============================================================================== --- maven/website/content/guides/mini/guide-releasing.html (original) +++ maven/website/content/guides/mini/guide-releasing.html Sun May 12 07:42:36 2024 @@ -2,21 +2,21 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-releasing.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-releasing.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Jason van Zyl" /> <meta name="author" content="Trent Rosenbaum" /> <meta name="author" content="Vincent Massol" /> <meta name="author" content="Karl Heinz Marbaise" /> <meta name="date" content="2006-10-07 2015-07-31" /> - <title>Maven</title> + <title>Maven â Guide to using the release plugin</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -43,10 +43,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -54,9 +52,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-releasing.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide to using the release plugin <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-releasing.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -167,26 +164,27 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Releasing"></a> -<h1>Releasing</h1><section><a id="Introduction"></a> +<section> +<h1>Releasing</h1><section> <h2>Introduction</h2> <p>The main aim of the maven-release plugin is to provide a standard mechanism to release project artifacts outside the immediate development team. The plugin provides basic functionality to create a release and to update the project's SCM accordingly.</p> <p>To create a release the maven-release plugin is executed through maven in 2 stages:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Preparing the release.</li> -<li>Performing the release.</li></ol></section><section><a id="Preparing_the_release"></a> +<li>Performing the release.</li></ol></section><section> <h2>Preparing the release</h2> <p>The plugin will record release information into a new revision of the project's <i>pom.xml</i> file as well as applying SCM versioning to the project's resources.</p> <p>The <code>release:prepare</code> goal will:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Verify that there are no uncommitted changes in the workspace.</li> <li>Prompt the user for the desired tag, release and development version names.</li> <li>Modify and commit release information into the <i>pom.xml</i> file.</li> <li>Tag the entire project source tree with the new tag name.</li></ol> <p>The following example shows how to run the <code>release:prepare</code> goal with a Subversion SCM. The commandline example directs the plugin to locate a Subversion SCM on a local file system.</p> +<div class="verbatim"> <pre>mvn release:prepare \ -Dproject.scm.developerConnection=scm:svn:file:///D:/subversion_data/repos/my_repo/my-app-example/trunk \ - -DtagBase=file:///D:/subversion_data/repos/my_repo/my-app-example/tags</pre> + -DtagBase=file:///D:/subversion_data/repos/my_repo/my-app-example/tags</pre></div> <p>When using the <code>release:prepare</code> goal, the user must supply maven with information regarding the current location of the project's SCM. In the previous example maven was supplied with the current location of the development trunk and the new location to record tagged instances of the project.</p> <ul> <li><b>project.scm.developerConnection</b> @@ -194,7 +192,7 @@ <li><b>tagbase</b> <p>The new location to record a tagged release. A valid SCM URL format appropriate to the SCM provider without the "SCM:Provider:" prefix.</p></li></ul> <p>The previous goal parameters can be supplied while executing maven on the commandline, (as shown in the previous example) or they can be defined and maintained within the project's <i>pom.xml</i> file. The location of the current development trunk is defined within the <i>pom.xml</i> file in the following form:</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>app</artifactId> @@ -225,9 +223,9 @@ </plugins> </build> ... -</project> </code></pre> +</project> </pre></div> <p>To define the tagBase parameter within the <i>pom.xml</i> file a tagBase element must be defined within a <i>plugins/plugin/configuration</i> element. The following example shows how this would look within the <i>pom.xml</i> file.</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>app</artifactId> @@ -258,7 +256,7 @@ </plugins> </build> ... -</project></code></pre> +</project></pre></div> <p>During the execution of the <code>release:prepare</code> goal maven will interact with the user to gather information about the current release. Maven will prompt the user for the following information:</p> <ul> <li><b>A Desired SCM provider tag name</b>. @@ -267,18 +265,20 @@ <p>This value is placed in the <i>pom.xml</i> that will define the current release. If a development <i>pom.xml</i> holds a version value of 1.0-SNAPSHOT then the release version would be 1.0. This is not enforced and can be a value appropriate to yourself or a company environment.</p></li> <li><b>A New development version</b>. <p>This value is the placed in the next revision of the <i>pom.xml</i> file used for continuing development. If the current release represented version 1.0 then an appropriate value could be 2.0-SNAPSHOT. The SNAPSHOT designator is required to prepare and perform future releases. This value is then committed in the next development revision of the <i>pom.xml</i> file.</p></li></ul> -<p>After maven has been supplied with the required information the maven-release plugin will interact with the project's SCM and define a relese to be extracted and deployed. At the same time the project's development trunk is updated allowing developers to continue with further modifications that will be included within future releases.</p></section><section><a id="Performing_the_release"></a> +<p>After maven has been supplied with the required information the maven-release plugin will interact with the project's SCM and define a relese to be extracted and deployed. At the same time the project's development trunk is updated allowing developers to continue with further modifications that will be included within future releases.</p></section><section> <h2>Performing the release</h2> <p>The plugin will extract file revisions associated with the current release. Maven will compile, test and package the versioned project source code into an artifact. The final deliverable will then be released into an appropriate maven repository.</p> <p>The <code>release:perform</code> goal will:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Extract file revisions versioned under the new tag name.</li> <li>Execute the maven build lifecycle on the extracted instance of the project.</li> <li>Deploy the versioned artifacts to appropriate local and remote repositories.</li></ol> <p>The following example shows how to run the <code>release:perform</code> goal from the commandline.</p> -<pre>mvn release:perform</pre> +<div class="verbatim"> +<pre>mvn release:perform</pre></div> <p>The <code>release:perform</code> goal requires a file called <i>release.properties</i> to be present within the project root directory. The <i>release.properties</i> file is constructed during the execution of the <code>release:prepare</code> goal and contains all the information needed to locate and extract the correctly tagged version of the project. Shown below is an example of the contents that can appear within an instance of the <i>release.properties</i> file.</p> <p><b>Note:</b> The location of the <i>release.properties</i> file is under review and could be moved to the target directory.</p> +<div class="verbatim"> <pre>#Generated by Release Plugin on: Sat Nov 12 11:22:33 GMT 2005 #Sat Nov 12 11:22:33 GMT 2005 maven.username=myusername @@ -292,11 +292,11 @@ checkpoint.initialized=OK checkpoint.checked-in-release-version=OK checkpoint.tagged-release=OK checkpoint.prepared-release=OK -checkpoint.check-in-development-version=OK</pre> +checkpoint.check-in-development-version=OK</pre></div> <p>The <i>release.properties</i> file is created while preparing the release. After performing the release the file remains within the project root directory until the maven user deletes it. The <i>release.properties</i> file can be given to any developer within the team and by simply excuting the <code>release:perform</code> goal can create and deploy a new instance of the project artifact time and again.</p> <p>During the execution of the <code>release:perform</code> goal the entire maven build lifecycle is executed on the project. The tagged project source code is extracted, compiled, tested, documented and deployed. An instance of the release artifact is deployed to the machine's local repository. An another instance of the release can be deployed to a remote repository by configuring the <i>distributionManagement</i> element within the <i>pom.xml</i> file.</p> <p>The following is an example of how a distributionManagement element can be configured within a project <i>pom.xml</i> file.</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>app</artifactId> @@ -313,7 +313,7 @@ checkpoint.check-in-development-version= </repository> </distributionManagement> ... -</project></code></pre> +</project></pre></div> <p>If the distributionManagement element is not configured within the <i>pom.xml</i> file then the deployment of the artifact will fail. Maven will report a failure back to the user for the execution of the maven-deploy plugin. Please refer maven documentationa and additional mini guides for the use of the maven-deploy plugin.</p> <p>The following delvierables are created and deployed to local and remoted repositories after the execution of the <code>release:perform</code> goal has finished.</p> <ul> @@ -324,10 +324,10 @@ checkpoint.check-in-development-version= <li><i>artifact id</i>-<i>version</i>-source.jar <p>The source code revisions used to build the current release of the project.</p></li> <li><i>artifact id</i>-<i>version</i>.pom -<p>The contents of the <i>pom.xml</i> file used to create the current release of the project.</p></li></ul></section><section><a id="Troubleshooting"></a> -<h2>Troubleshooting</h2><section><a id="I_get_a_.22The_authenticity_of_host_.27host.27_can.27t_be_established..22_error_and_the_build_hangs"></a> +<p>The contents of the <i>pom.xml</i> file used to create the current release of the project.</p></li></ul></section><section> +<h2>Troubleshooting</h2><section> <h3>I get a "The authenticity of host '<i>host</i>' can't be established." error and the build hangs</h3> -<p>This is because your <code>~user/.ssh/known_hosts</code> file doesn't have the host listed. You'd normally get a prompt to add the host to the known host list but Maven doesn't propagate that prompt. The solution is to add the host the <code>known_hosts</code> file before executing Maven. On Windows, this can be done by installing an OpenSSH client (for example <a class="externalLink" href="http://sshwindows.sourceforge.net/download/">SSHWindows</a>), running <code>ssh <host</code>> and accepting to add the host.</p></section><section><a id="The_site_deploy_goal_hangs"></a> +<p>This is because your <code>~user/.ssh/known_hosts</code> file doesn't have the host listed. You'd normally get a prompt to add the host to the known host list but Maven doesn't propagate that prompt. The solution is to add the host the <code>known_hosts</code> file before executing Maven. On Windows, this can be done by installing an OpenSSH client (for example <a class="externalLink" href="http://sshwindows.sourceforge.net/download/">SSHWindows</a>), running <code>ssh <host</code>> and accepting to add the host.</p></section><section> <h3>The site deploy goal hangs</h3> <p>First, this means that you have successfully deployed the artifacts to the remote repo and that it's only the site deployment that is now an issue. Stop your build, cd to <b>target/checkout</b>> and run the build again by executing <code>mvn site:deploy</code>. You should see a prompt asking you to enter a password. This happens if your key is not in the authorized keys on the server.</p></section></section></section> </main> Modified: maven/website/content/guides/mini/guide-relocation.html ============================================================================== --- maven/website/content/guides/mini/guide-relocation.html (original) +++ maven/website/content/guides/mini/guide-relocation.html Sun May 12 07:42:36 2024 @@ -2,17 +2,17 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-relocation.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-relocation.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Dennis Lundberg" /> <meta name="date" content="2006-07-08" /> - <title>Maven</title> + <title>Maven â Guide to relocation</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -39,10 +39,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -50,9 +48,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-relocation.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide to relocation <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-relocation.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -162,22 +159,22 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Guide_to_relocation"></a> +<section> <h1>Guide to relocation</h1> <p>Sometimes it is necessary to relocate artifacts in the repository. One example of that is when a project moves from one groupId to a different groupId.</p> <p>Making changes to the repository can have far reaching consequences. So it is best to get it right the first time, hence this guide.</p> -<p><b>2020 rework in progress</b>, see <a class="externalLink" href="https://lists.apache.org/thread.html/r5e940260cfe5234f540c20fdb7bb7dacbb63b911a4b902c75f4f0cd2%40%3Cdev.maven.apache.org%3E">discussion on dev mailing list</a>, still need analysis of issues, definition of improvements, and of course implementation...</p><section><a id="How_to_relocate_a_Maven_2_artifact_to_a_different_groupId"></a> +<p><b>2020 rework in progress</b>, see <a class="externalLink" href="https://lists.apache.org/thread.html/r5e940260cfe5234f540c20fdb7bb7dacbb63b911a4b902c75f4f0cd2%40%3Cdev.maven.apache.org%3E">discussion on dev mailing list</a>, still need analysis of issues, definition of improvements, and of course implementation...</p><section> <h2>How to relocate a Maven 2 artifact to a different groupId</h2> -<p>The goal of the example below is for the <code>foo</code> project to relocate its groupId from <code>bar</code> to <code>org.bar</code>.</p><section><a id="Working_on_past_versions"></a> +<p>The goal of the example below is for the <code>foo</code> project to relocate its groupId from <code>bar</code> to <code>org.bar</code>.</p><section> <h3>Working on past versions</h3> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Copy all <code>foo</code>-related files from <code>/bar/foo/</code> in your Maven 2 repository to a temporary location.</li> <li>Change the groupId to <code>org.bar</code> in all <code>foo</code>-related POM files in the temporary location.</li> <li>Copy all files from the temporary location to <code>/org/bar/foo/</code> in your Maven 2 repository.</li> <li>Create a minimal Maven 2 POM file for every old release of <code>foo</code> in your Maven 2 repository. The POM files only need to include <code>groupId</code>, <code>artifactId</code>, <code>version</code> and the relocation section. <p><b>Note:</b> Before you replace your old POM files in <code>/bar/foo/</code> with these minimal POM files, make sure you have made backups!</p> <p>The minimal POM file might look like this for version 1.0 of <code>foo</code>:</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> <modelVersion>4.0.0</modelVersion> <groupId>bar</groupId> <artifactId>foo</artifactId> @@ -187,31 +184,31 @@ <groupId>org.bar</groupId> </relocation> </distributionManagement> -</project></code></pre> +</project></pre></div> <p>In this case we are relocating because the groupId has changed. We only need to add the element that has changed to the <code>relocation</code> element. For information on which elements are allowed in the <code>relocation</code> element, see <a href="/ref/current/maven-model/maven.html#class_relocation">the POM reference</a>.</p></li> <li>If your project uses MD5 or SHA1 checksums you must now create new checksums for the pom files in <code>/bar/foo/</code> in your Maven 2 repository. If the POM file needs to be signed, do that as well.</li> <li>If your project syncs with Central, you should now initiate that sync. This might happen automatically depending on your projects sync policy.</li></ol> -<p>Your <code>foo</code>-artifacts are now available to Maven users with both the old and the new groupId. Projects using the old groupId will automatically be redirected to the new groupId and a warning telling the user to update their dependencies will be issued.</p></section><section><a id="Releasing_the_next_version"></a> +<p>Your <code>foo</code>-artifacts are now available to Maven users with both the old and the new groupId. Projects using the old groupId will automatically be redirected to the new groupId and a warning telling the user to update their dependencies will be issued.</p></section><section> <h3>Releasing the next version</h3> <p>When the next release of <code>foo</code> is made, you should publish two Maven 2 POM files: first you should publish <code>foo</code>'s POM with the new groupId <code>org.bar</code>.</p> <p>Because data in the repository is not supposed to change, Maven doesn't download POM files that it has already downloaded. Therefore you will also need to publish a relocation POM file with the old groupId <code>bar</code> for the new version: this should be a minimal relocation POM (as described in step 4 above), but for the new version of <code>foo</code>.</p> -<p>For the release after that, you only need to publish a Maven POM with a groupId of <code>org.bar</code>, since users of the previous version have been informed of the changed groupId.</p></section></section><section><a id="Examples"></a> -<h2>Examples</h2><section><a id="Apache_Ant"></a> +<p>For the release after that, you only need to publish a Maven POM with a groupId of <code>org.bar</code>, since users of the previous version have been informed of the changed groupId.</p></section></section><section> +<h2>Examples</h2><section> <h3>Apache Ant</h3> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>has published its releases until 1.6.5 to Maven 1-compliant <code>ant:ant</code> coordinates (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/ant/ant/">repository content</a>),</li> <li>starting with 1.7.0, moved to reverse-DNS compliant Maven 2+ <code>org.apache.ant:ant</code> coordinates, (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/org/apache/ant/ant/">repository content</a>),</li> <li>published one <code>ant:ant:1.7.0</code> relocation POM in old groupId to advertise about the move (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/ant/ant/1.7.0/">repository content</a>).</li></ol> -<p>Notice that past <code>ant:ant</code> versions POMs (until 1.6.5) have not been modified to advertise about the move: Central POM content is not expected to be changed once published (because initial content has been downloaded many times and is not expected to be re-loaded later).</p></section><section><a id="Apache_POI"></a> +<p>Notice that past <code>ant:ant</code> versions POMs (until 1.6.5) have not been modified to advertise about the move: Central POM content is not expected to be changed once published (because initial content has been downloaded many times and is not expected to be re-loaded later).</p></section><section> <h3>Apache POI</h3> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>has published its releases until 3.0-alpha-3 to Maven 1-compliant <code>poi:poi</code> coordinates (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/poi/poi/">repository content</a>),</li> <li>starting with 3.0-FINAL, moved to reverse-DNS compliant Maven 2+ <code>org.apache.poi:poi</code> coordinates, (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/org/apache/poi/poi/">repository content</a>),</li> <li>published <code>poi:poi:3.0-FINAL</code> relocation POM <b>with jars</b> in old groupId to advertise about the move (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/poi/poi/3.0-FINAL/">repository content</a>).</li> -<li>published <code>poi:poi</code> relocation POMs for 3.0.1-FINAL, 3.0.2-beta1/beta2/FINAL and 3.1-beta1/beta2/FINAL in old groupId to advertise about the move (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/poi/poi/">repository content</a>).</li></ol></section><section><a id="Testing"></a> +<li>published <code>poi:poi</code> relocation POMs for 3.0.1-FINAL, 3.0.2-beta1/beta2/FINAL and 3.1-beta1/beta2/FINAL in old groupId to advertise about the move (see <a class="externalLink" href="https://repo.maven.apache.org/maven2/poi/poi/">repository content</a>).</li></ol></section><section> <h3>Testing</h3> <p>Using <code>pom.xml</code></p> -<pre><code><?xml version="1.0" encoding="UTF-8"?> +<div class="verbatim source"><pre class="prettyprint linenums"><?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> @@ -231,8 +228,9 @@ <version>3.0-FINAL</version><!-- https://repo.maven.apache.org/maven2/poi/poi/3.0-FINAL/ --> </dependency> </dependencies> -</project></code></pre> +</project></pre></div> <p>Dependency resolution of these relocated artifacts follows to the new relocated coordinates, issuing a warning:</p> +<div class="verbatim"> <pre>$ mvn dependency:list dependency:tree [INFO] Scanning for projects... [INFO] @@ -264,7 +262,7 @@ [INFO] \- log4j:log4j:jar:1.2.13:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS -[INFO] ------------------------------------------------------------------------</pre></section></section></section> +[INFO] ------------------------------------------------------------------------</pre></div></section></section></section> </main> </div> </div> Modified: maven/website/content/guides/mini/guide-repository-ssl.html ============================================================================== --- maven/website/content/guides/mini/guide-repository-ssl.html (original) +++ maven/website/content/guides/mini/guide-repository-ssl.html Sun May 12 07:42:36 2024 @@ -2,17 +2,17 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-repository-ssl.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-repository-ssl.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Arnaud Bailly" /> <meta name="date" content="2005-11-11" /> - <title>Maven</title> + <title>Maven â Remote repository access through authenticated HTTPS</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -39,10 +39,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -50,9 +48,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-repository-ssl.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Remote repository access through authenticated HTTPS <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-repository-ssl.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -162,26 +159,31 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Guide_to_Remote_repository_access_through_authenticated_HTTPS"></a> +<section> <h1>Guide to Remote repository access through authenticated HTTPS</h1> -<p>This document describes how to configure Maven to access a remote repository that sits behind an HTTPS server which requires client authentication with certificates.</p><section><a id="The_problem"></a> +<p>This document describes how to configure Maven to access a remote repository that sits behind an HTTPS server which requires client authentication with certificates.</p><section> <h2>The problem</h2> <p>There is a maven repository at <code>https://my.server.com/maven</code>. This server only serves clients authenticated through SSL protocol by a valid certificate signed by an approved certificate authority's certificate which we call the <code>CACert</code>. In the simplest case where the server is used internally by an identified community of users (e.g. corporate intranet), the server's certificate is the certificate authority as the server is used only internally.</p> <p>So we assume that we have access to the trusted certificate in X.509 format stored in a file named:</p> -<pre> /somewhere/in/filesystem/CACert.cert</pre> +<div class="verbatim"> +<pre> /somewhere/in/filesystem/CACert.cert</pre></div> <p>The client's certificate has been issued by some means not described in this document in PKCS#12 format, which is the format that is accepted by browsers (at least Firefox and Internet Explorer) for import into their keystore. This file is named:</p> -<pre> /home/directory/mycertificate.p12</pre> +<div class="verbatim"> +<pre> /home/directory/mycertificate.p12</pre></div> <p>and we assume it is accessible when launching maven. This file contains the client's private key which may be very sensitive information so it is secured by a password:</p> -<pre> CeRtPwD</pre> +<div class="verbatim"> +<pre> CeRtPwD</pre></div> <p>The remote repository is referenced either through the <code>pom.xml</code> file:</p> -<pre>maven.repo.remote=https://my.server.com/maven,http://www.ibiblio.org/maven</pre></section><section><a id="The_solution"></a> +<div class="verbatim"> +<pre>maven.repo.remote=https://my.server.com/maven,http://www.ibiblio.org/maven</pre></div></section><section> <h2>The solution</h2> <p>For maven to use this repository, we should take the following steps:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Create a store to hold the server's certificate usings Oracle's <a class="externalLink" href="https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html"> keytool</a>,</li> -<li>Define properties to be used by HttpClient for finding keys and certificate</li></ol><section><a id="Storing_certificate"></a> +<li>Define properties to be used by HttpClient for finding keys and certificate</li></ol><section> <h3>Storing certificate</h3> <p>The following command line imports the certififcate authority's certificate into a JKS formatted key store named <code>trust.jks</code>, the <i>trust store</i>.</p> +<div class="verbatim"> <pre>$> keytool -v -alias mavensrv -import \ -file /somewhere/in/filesystem/CACert.cert\ -keystore trust.jks @@ -196,8 +198,8 @@ Certificate fingerprints: Trust this certificate? [no]: yes Certificate was added to keystore [Storing trust.jks] -$></pre> -<p>Note that it should be possible to import a full chain of certificates with only one root certificate being trusted but the author did not test it.</p></section><section><a id="Setting_properties"></a> +$></pre></div> +<p>Note that it should be possible to import a full chain of certificates with only one root certificate being trusted but the author did not test it.</p></section><section> <h3>Setting properties</h3> <p>The following properties must be set at start of maven to be accessible when HttpClient starts up.</p> <dl> @@ -215,11 +217,12 @@ $></pre> <dd>the password protecting the store</dd></dl> <p>Not all the properties must be set depending of your precise settings: type of store may left to default, password may be empty.</p> <p>They may be set either on maven's command-line, in <code>.mavenrc</code> file or in <code>MAVEN_OPTS</code> environment variable. For the setting defined in this document, here is an example <code>.mavenrc</code> file:</p> +<div class="verbatim"> <pre>MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=trust.jks \ -Djavax.net.ssl.trustStorePassword= \ -Djavax.net.ssl.keyStore=/home/directory/mycertificate.p12 \ -Djavax.net.ssl.keyStoreType=pkcs12 \ - -Djavax.net.ssl.keyStorePassword=XXXXXX"</pre></section></section><section><a id="Links"></a> + -Djavax.net.ssl.keyStorePassword=XXXXXX"</pre></div></section></section><section> <h2>Links</h2> <p>The following links may be useful in understanding SSL infrastructure management in Java:</p> <ul> Modified: maven/website/content/guides/mini/guide-reproducible-builds.html ============================================================================== --- maven/website/content/guides/mini/guide-reproducible-builds.html (original) +++ maven/website/content/guides/mini/guide-reproducible-builds.html Sun May 12 07:42:36 2024 @@ -2,17 +2,17 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-reproducible-builds.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-reproducible-builds.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Hervé Boutemy" /> <meta name="date" content="2019-11-03" /> - <title>Maven</title> + <title>Maven â Guide to Configuring for Reproducible Builds</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -39,10 +39,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -50,9 +48,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-reproducible-builds.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide to Configuring for Reproducible Builds <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-reproducible-builds.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -163,42 +160,45 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Configuring_for_Reproducible_Builds"></a> -<h1>Configuring for Reproducible Builds</h1><section><a id="What_are_Reproducible_Builds.3F"></a> +<section> +<h1>Configuring for Reproducible Builds</h1><section> <h2>What are Reproducible Builds?</h2> <p><a class="externalLink" href="https://reproducible-builds.org/">Reproducible builds</a> are a set of software development practices that create an independently-verifiable path from source to binary code. A build is <b>reproducible</b> if given the same source code, build environment and build instructions, any party can recreate <b>bit-by-bit</b> identical copies of all specified artifacts.</p> -<p><a class="externalLink" href="https://github.com/jvm-repo-rebuild/reproducible-central">Reproducible Central</a> lists projects releases that have been checked as reproducible by rebuilding independently from the reference build published in Central Repository.</p></section><section><a id="How_do_I_configure_my_Maven_build.3F"></a> +<p><a class="externalLink" href="https://github.com/jvm-repo-rebuild/reproducible-central">Reproducible Central</a> lists projects releases that have been checked as reproducible by rebuilding independently from the reference build published in Central Repository.</p></section><section> <h2>How do I configure my Maven build?</h2> <p>There is no Maven version prerequisite. Everything happens at plugin level:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Upgrade your plugins to reproducible versions: to easily detect <a href="/plugins/maven-artifact-plugin/plugin-issues.html">required upgrades</a>, run -<pre>mvn artifact:check-buildplan</pre></li> +<div class="verbatim"> +<pre>mvn artifact:check-buildplan</pre></div></li> <li>Enable Reproducible Builds mode for plugins, by adding <a class="externalLink" href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318#Reproducible/VerifiableBuilds-OutputArchiveEntriesTimestamp"><code>project.build.outputTimestamp</code> property</a> to the project's <code>pom.xml</code>: -<pre><code> <properties> +<div class="verbatim source"><pre class="prettyprint linenums"> <properties> <project.build.outputTimestamp>2023-01-01T00:00:00Z</project.build.outputTimestamp> - </properties></code></pre></li></ol> -<p>You have the basics configured. The output should be mostly reproducible now.</p></section><section><a id="How_to_test_my_Maven_build_reproducibility.3F"></a> + </properties></pre></div></li></ol> +<p>You have the basics configured. The output should be mostly reproducible now.</p></section><section> <h2>How to test my Maven build reproducibility?</h2> <p>Using <a href="/plugins/maven-artifact-plugin/compare-mojo.html"><code>maven-artifact-plugin</code>'s <code>compare</code> goal</a>, you can easily check that the second build of your project produce the same output than an initial build:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>build and <code>install</code> your project (don't hesitate to customize arguments to better match your project): -<pre>mvn clean install </pre></li> +<div class="verbatim"> +<pre>mvn clean install </pre></div></li> <li>rebuild (<code>verify</code> only, without installing) and check against the previous install: -<pre>mvn clean verify artifact:compare</pre></li></ol> -<p>Notice that this does NOT really prove that your build is yet reproducible, because your build may still suffer from environment leaks (username, current directory, ...). But it is easy to do, and prevents basic non-reproducible issues like timestamps. Really checking reproducibility requires to rebuild from a completely different setup: this is harder to do, even if containers may ease the task.</p></section><section><a id="How_to_fix_my_Maven_build_reproducibility.3F"></a> +<div class="verbatim"> +<pre>mvn clean verify artifact:compare</pre></div></li></ol> +<p>Notice that this does NOT really prove that your build is yet reproducible, because your build may still suffer from environment leaks (username, current directory, ...). But it is easy to do, and prevents basic non-reproducible issues like timestamps. Really checking reproducibility requires to rebuild from a completely different setup: this is harder to do, even if containers may ease the task.</p></section><section> <h2>How to fix my Maven build reproducibility?</h2> <p>If something is still not reproducible after initial setup and <a href="/plugins/maven-artifact-plugin/plugin-issues.html">automatic check from <code>artifact:check-buildplan</code></a>:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>Use <a class="externalLink" href="https://diffoscope.org/">diffoscope</a> to find the unstable output between builds. The <code>artifact:buildinfo</code> goal proposes a command with path to files: just copy/paste to launch.</li> <li>Find the plugin that generated this output.</li> -<li>Check if a reproducible version of the plugin is available. If not, please open an issue to help plugin maintainers improving Reproducible Builds support at every plugin level.</li></ol></section><section><a id="More_Details"></a> +<li>Check if a reproducible version of the plugin is available. If not, please open an issue to help plugin maintainers improving Reproducible Builds support at every plugin level.</li></ol></section><section> <h2>More Details</h2> <p>Reproducible Builds for Maven:</p> <ul> <li>Require <b>no version ranges</b> in dependencies,</li> <li>Generally give <b>different results on Windows and Unix</b> because of different newlines. (carriage return linefeed on Windows, linefeed on Unixes)</li> <li>Generally depend on the <b>major version of the JDK</b> used to compile. (Even with source/target defined, each major JDK version changes the generated bytecode)</li></ul> -<p>For detailed explanations, see <a class="externalLink" href="https://s.apache.org/reproducible-builds">Maven "Reproducible/Verifiable Builds" Wiki page</a>.</p></section><section><a id="FAQ"></a> +<p>For detailed explanations, see <a class="externalLink" href="https://s.apache.org/reproducible-builds">Maven "Reproducible/Verifiable Builds" Wiki page</a>.</p></section><section> <h2>FAQ</h2> <ul> <li>Q. Can the <code>project.build.outputTimestamp</code> property in <code>pom.xml</code> be updated automatically at release time? Modified: maven/website/content/guides/mini/guide-resolver-transport.html ============================================================================== --- maven/website/content/guides/mini/guide-resolver-transport.html (original) +++ maven/website/content/guides/mini/guide-resolver-transport.html Sun May 12 07:42:36 2024 @@ -2,15 +2,15 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/markdown/guides/mini/guide-resolver-transport.md at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/markdown/guides/mini/guide-resolver-transport.md at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> - <title>Maven</title> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> + <title>Maven â Guide for Resolver Transport</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -37,10 +37,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -48,9 +46,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/markdown/guides/mini/guide-resolver-transport.md"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide for Resolver Transport <a href="https://github.com/apache/maven-site/tree/master/content/markdown/guides/mini/guide-resolver-transport.md"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -160,7 +157,171 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section> +<section><section> +<h2>Guide for Resolver Transport</h2><!-- +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>Historically, since Maven 2.x, the only transport used by Maven was Maven Wagon. Since the introduction of the Resolver in +Maven 3.x, it did “wrap” it in the <code>maven-resolver-transport-wagon</code> module, and continued to use it. Still, Wagon is +deeply integrated with the old Plexus DI container and many, if not all, of its configuration are bound to be set in +Plexus XML, which is not type safe, nor validated, nor future-proof.</p> +<p><strong>Starting with Maven 3.9.0 release, the <em>default transport</em> (the default transport used by Maven Resolver) +changed from ancient Wagon to modern <code>maven-resolver-transport-http</code> aka <em>native HTTP</em> transport.</strong></p> +<p>Take a peek at the Resolver <a href="https://maven.apache.org/resolver/" class="externalLink">architecture diagram</a> and the <em>transport</em> box +contains several implementations, and this number will probably increase.</p> +<p>The Resolver contains configuration for many aspects, including transport (see the keys +prefixed with <code>aether.connector.</code>). They can be found on +<a href="https://maven.apache.org/resolver/configuration.html" class="externalLink">resolver configuration page</a>.</p> +<p><strong>This page applies only to Maven 3.9.0 and newer.</strong></p></section><section> +<h2>Switching Between Transports</h2> +<p>The transport used by resolver can be controlled using the <code>-Dmaven.resolver.transport</code> user property, for which accepted +values are <code>native</code> (the default), <code>wagon</code> (uses legacy Wagon) and <code>auto</code> (delegates to resolver to sort +out defaults).</p> +<p>The accepted values of <code>maven.resolver.transport</code> user property:</p> +<ul> + +<li><code>default</code> (implied if not present), does <code>auto</code> by default</li> +<li><code>native</code> forces use of transport-http</li> +<li><code>wagon</code> forces use of transport-wagon</li> +<li><code>auto</code> delegates to the resolver the transport choice (using <code>aether.priority.<class></code> and related properties, or just relying on component priorities).</li> +</ul> +<p>Note: <em>forces</em> means that the resolver will use the given transport even if another higher prioritized component is present +on classpath.</p> +<p>Given the priority of <code>native</code> is higher than <code>wagon</code>, and that starting with Maven 3.9.0 both are present on resolver +classpath, <code>native</code> is chosen by default. This behaviour preserves existing (pre 3.9.0) behaviour of Maven Resolver, +that allowed third party transports to be added (by copying them to <code>lib/ext</code>) that have higher priorities. Still, +fallback is possible with explicit use of <code>native</code> or <code>wagon</code> values.</p></section><section> +<h2>Custom HTTP Headers</h2> +<p>In all HTTP transports, you can add your custom HTTP headers like this:</p> + +<div class="verbatim"> +<pre><code class="language-xml"><settings> + <servers> + <server> + <id>my-server</id> + <configuration> + <httpHeaders> + <property> + <name>Foo</name> + <value>Bar</value> + </property> + </httpHeaders> + </configuration> + </server> + </servers> +</settings> +</code></pre></div> +<p>It is important to understand that the above approach does not allow you to turn off all the default HTTP headers; +nor does it allow you to specify headers on a per-method basis. However, this configuration remains available in all +transports that support headers, like HTTP transports are (and works for “native” but also Wagon transport).</p></section><section> +<h2>Timeouts</h2> +<p>All transport implementations that perform some network access allow configuring several timeouts, +for example to allow the user to tell Maven how long to wait before giving up on a connection that has not responded.</p> + +<div class="verbatim"> +<pre><code class="language-xml"><settings> + <servers> + <server> + <id>my-server</id> + <configuration> + <connectTimeout>10000</connectTimeout> <!-- milliseconds --> + <requestTimeout>1800000</requestTimeout> <!-- milliseconds --> + </configuration> + </server> + </servers> +</settings> +</code></pre></div></section><section> +<h2>Low-level Resolver configuration</h2> +<p>All configuration items mentioned in <a href="https://maven.apache.org/resolver/configuration.html" class="externalLink">Configuration Options</a> +which are not mapped by <code>server/configuration</code> (eg.httpHeaders, timeout) tag must be provided in special way.</p> +<p>Some resolver configuration properties has a flag <code>Supports Repo ID Suffix</code>.</p> +<p>If you use property like:</p> + +<div class="verbatim"> +<pre><code>aether.connector.http.preemptiveAuth=true +</code></pre></div> +<p>it means that <code>preemptiveAuth</code> will be applied for all of your repositories.</p> +<p>You can also add suffix to property with your repository ID in order to configure only for selected repository.</p> + +<div class="verbatim"> +<pre><code>aether.connector.http.preemptiveAuth.myRepositoryId=true +</code></pre></div> +<p>it means that <code>preemptiveAuth</code> will be applied only for repository or mirror which has <code>id</code> as <code>myRepositoryId</code></p><section> +<h3>System level</h3> +<p>Configuration can be provided on global level as properties in <code>settings.xml</code></p> + +<div class="verbatim"> +<pre><code class="language-xml"><settings> + <profiles> + <profile> + <id>resolver-config</id> + <properties> + <aether.dependencyCollector.impl>bf</aether.dependencyCollector.impl> + <!-- set preemptiveAuth for all repositories --> + <aether.connector.http.preemptiveAuth>true</aether.connector.http.preemptiveAuth> + </properties> + </profile> + </profiles> + + <activeProfiles> + <!-- profile with configuration properties must be activated here --> + <activeProfile>resolver-config</activeProfile> + </activeProfiles> +</settings> +</code></pre></div> +<p><strong>NOTICE</strong></p> +<ul> + +<li>only profiles activated by <code>settings/activeProfiles</code> will be taken for consideration - you can not use <code>profile/activation</code> in such case</li> +</ul> +<p>You can also use environment variable <code>MAVEN_OPTS</code> ot <code>MAVEN_ARGS</code></p> + +<div class="verbatim"> +<pre><code>export MAVEN_ARGS="-Daether.connector.http.preemptiveAuth=true" +</code></pre></div></section><section> +<h3>Project level</h3> +<p>You can add configuration items per project in <code>.mvn/maven.config</code>, like:</p> + +<div class="verbatim"> +<pre><code>-Daether.dependencyCollector.impl=bf +</code></pre></div></section><section> +<h3>Execution level</h3> +<p>For particular execution can be provided as user settings on command line:</p> + +<div class="verbatim"> +<pre><code>$ mvn ... -Daether.enhancedLocalRepository.split \ + -Daether.enhancedLocalRepository.localPrefix=maven-resolver/mresolver-253 + -Daether.enhancedLocalRepository.splitRemoteRepository +</code></pre></div></section></section><section> +<h2>How To Upgrade from Wagon? (or “native transport does not work”)</h2> +<p>If your build environment uses Wagon specific configuration (in <code>settings.xml</code> or alike), you should migrate your +configuration first. You can still upgrade and use latest Maven, with use <code>-Dmaven.resolver.transport=wagon</code> user property +to stick with Wagon, but migration to new transport is warmly recommended.</p></section><section> +<h2>Per Transport configuration details</h2> +<p>Depending on which transport you use (<code>native</code>, <code>wagon</code> or something else), you will want to refer to the corresponding +page(s) for detailed configuration options:</p> +<ul> + +<li>For Native HTTP transport detailed configuration user properties are <a href="https://maven.apache.org/resolver/configuration.html" class="externalLink">collected on this page</a>.</li> +<li>For Wagon you want to use <code>-Dmaven.resolver.transport=wagon</code> user property and <a href="https://maven.apache.org/guides/mini/guide-http-settings.html" class="externalLink">configuration from this page</a>.</li> +<li>For any third party transport, please refer to its own documentation.</li> +</ul></section></section> </main> </div> </div> Modified: maven/website/content/guides/mini/guide-site.html ============================================================================== --- maven/website/content/guides/mini/guide-site.html (original) +++ maven/website/content/guides/mini/guide-site.html Sun May 12 07:42:36 2024 @@ -2,18 +2,18 @@ <!-- - | Generated by Apache Maven Doxia Site Renderer 2.0.0-M18 from content/apt/guides/mini/guide-site.apt at 2024-05-11 + | Generated by Apache Maven Doxia Site Renderer 2.0.0-M10 from content/apt/guides/mini/guide-site.apt at 2024-05-12 | Rendered using Apache Maven Fluido Skin 2.0.0-M6 --> <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-M18" /> + <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0-M10" /> <meta name="author" content="Brett Porter" /> <meta name="author" content="Jason van Zyl" /> <meta name="date" content="2015-07-18" /> - <title>Maven</title> + <title>Maven â Guide to creating a site</title> <link rel="stylesheet" href="../../css/apache-maven-fluido-2.0.0-M6.min.css" /> <link rel="stylesheet" href="../../css/site.css" /> <link rel="stylesheet" href="../../css/print.css" media="print" /> @@ -40,10 +40,8 @@ <div class="container-fluid"> <header> <div id="banner"> - <div class="pull-left"><a href="https://www.apache.org/" id="bannerLeft"><h1>Apache Maven Site</h1> -</a></div> - <div class="pull-right"><a href="../.././" id="bannerRight"><h1>$esc.xml( $banner.name )</h1> -</a></div> + <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> @@ -51,9 +49,8 @@ <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li> <li><a href="../../index.html" title="Maven">Maven</a><span class="divider">/</span></li> - - <li class="active ">Maven <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-site.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> - <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-11</li> + <li class="active ">Guide to creating a site <a href="https://github.com/apache/maven-site/tree/master/content/apt/guides/mini/guide-site.apt"><img src="../../images/accessories-text-editor.png" title="Edit" /></a></li> + <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2024-05-12</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> @@ -151,10 +148,11 @@ </div> </header> <main id="bodyColumn" class="span10" > -<section><a id="Creating_a_site"></a> -<h1>Creating a site</h1><section><a id="Creating_Content"></a> +<section> +<h1>Creating a site</h1><section> <h2>Creating Content</h2> <p>The first step to creating your site is to create some content. In Maven, the site content is separated by format, as there are several available.</p> +<div class="verbatim"> <pre>+- src/ +- site/ +- apt/ @@ -170,7 +168,7 @@ +- xdoc/ | +- other.xml | - +- site.xml</pre> + +- site.xml</pre></div> <p>You will notice there is now a <code>${project.basedir}/src/site</code> directory within which is contained a <code>site.xml</code> site descriptor along with various directories corresponding to the supported document types.</p> <p>Let's take a look at the examples of the various document types:</p> <ul> @@ -180,19 +178,20 @@ <li><code>xdoc</code>: an XML document conforming to a small and simple set of tags, see the <a href="/doxia/references/xdoc-format.html">full reference</a>.</li></ul> <p>Other formats are available, but at this point these 4 are the best tested.</p> <p>There are also several possible output formats, but as of Maven Site Plugin, only XHTML is available.</p> -<p>Note that all of the above is optional - just one index file is required in one of the input trees. Each of the paths will be merged together to form the root directory of the site.</p></section><section><a id="Customizing_the_Look_.26_Feel"></a> +<p>Note that all of the above is optional - just one index file is required in one of the input trees. Each of the paths will be merged together to form the root directory of the site.</p></section><section> <h2>Customizing the Look & Feel</h2> <p>If you want to tune the way your site looks, you can use a custom <b>skin</b> to provide your own CSS styles. If that is still not enough, you can even tweak the output templates that Maven uses to generate the site documentation.</p> -<p>You can visit the <a href="/skins/">Skins index</a> to have a look at some of the skins that you can use to change the look of your site.</p></section><section><a id="Generating_the_Site"></a> +<p>You can visit the <a href="/skins/">Skins index</a> to have a look at some of the skins that you can use to change the look of your site.</p></section><section> <h2>Generating the Site</h2> <p>Generating the site is very simple, and fast!</p> -<pre>mvn site</pre> +<div class="verbatim"> +<pre>mvn site</pre></div> <p>By default, the resulting site will be in <code>target/site/...</code></p> -<p>For more information on the Maven Site Plugin, see the <a href="../../plugins/maven-site-plugin/"> maven-site-plugin reference</a>.</p></section><section><a id="Deploying_the_Site"></a> -<h2>Deploying the Site</h2><section><a id="Classical_Website_deployment"></a> +<p>For more information on the Maven Site Plugin, see the <a href="../../plugins/maven-site-plugin/"> maven-site-plugin reference</a>.</p></section><section> +<h2>Deploying the Site</h2><section> <h3>Classical Website deployment</h3> <p>To be able to deploy the site with a classical network protocol (ftp, scp, webdav), you must first declare a location to distribute to in your <code>pom.xml</code>, similar to the repository for deployment:</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> ... <distributionManagement> <site> @@ -201,16 +200,17 @@ </site> </distributionManagement> ... -</project></code></pre> +</project></pre></div> <ul> <li>the <code><id></code> element identifies the repository, so that you can attach credentials to it in your <code>settings.xml</code> file using the <a href="../../settings.html#Servers"> <code><servers></code> element</a> as you would for any other repository,</li> <li>the <code><url></code> gives the location to deploy to. Currently, only SSH is supported by default, as above which copies to the host <code>www.mycompany.com</code> in the path <code>/www/docs/project/</code>, but you can <a href="/plugins/maven-site-plugin/examples/adding-deploy-protocol.html">add more protocols as required</a>. If subprojects inherit the site URL from a parent POM, they will automatically get their <code><artifactId></code> appended to form their effective deployment location.</li></ul> <p>Once distribution location is configured, deploying the site is done by using the <code>site-deploy</code> phase of the site lifecycle.</p> -<pre>mvn site-deploy</pre></section><section><a id="GitHub_Pages.2C_Apache_svnpubsub.2Fgitpubsub_Deployment"></a> +<div class="verbatim"> +<pre>mvn site-deploy</pre></div></section><section> <h3>GitHub Pages, Apache svnpubsub/gitpubsub Deployment</h3> <p>When site publication is done with a SCM commit, like with <a class="externalLink" href="https://pages.github.com/">GitHub Pages</a> or <a class="externalLink" href="https://infra.apache.org/project-site.html#tools">Apache svnpubsub/gitpubsub</a>, deploying the site will be done with <a href="/plugins/maven-scm-publish-plugin/">Maven SCM Publish Plugin</a>. </p> <p>For example with a project hosted on GitHub and using GitHub Pages for its site publication:</p> -<pre><code> <plugin> +<div class="verbatim source"><pre class="prettyprint linenums"> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-publish-plugin</artifactId> <version>3.1.0</version> @@ -218,14 +218,14 @@ <pubScmUrl>${project.scm.developerConnection}</pubScmUrl> <scmBranch>gh-pages</scmBranch> </configuration> - </plugin></code></pre> + </plugin></pre></div> <p>Deploying the site is done in 2 steps:</p> -<ol style="list-style-type: decimal;"> +<ol style="list-style-type: decimal"> <li>staging the content by using the <code>site</code> phase of the site lifecycle followed by <code>site:stage</code>: <code>mvn site site:stage</code></li> -<li>publishing the staged site to the SCM: <code>mvn scm-publish:publish-scm</code></li></ol></section></section><section><a id="Creating_a_Site_Descriptor"></a> +<li>publishing the staged site to the SCM: <code>mvn scm-publish:publish-scm</code></li></ol></section></section><section> <h2>Creating a Site Descriptor</h2> <p>The <code>site.xml</code> file is used to describe the structure of the site. A sample is given below:</p> -<pre><code><?xml version="1.0" encoding="ISO-8859-1"?> +<div class="verbatim source"><pre class="prettyprint linenums"><?xml version="1.0" encoding="ISO-8859-1"?> <project xmlns="http://maven.apache.org/DECORATION/1.8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 https://maven.apache.org/xsd/decoration-1.8.0.xsd" name="Maven"> @@ -258,11 +258,12 @@ ... </body> -</project></code></pre> +</project></pre></div> <p><b>Note:</b> The <code><menu ref="reports"/></code> element above. When building the site, this is replaced by a menu with links to all the reports that you have configured.</p> -<p>More information about the site descriptor is available at the <a href="/plugins/maven-site-plugin/examples/sitedescriptor.html">dedicated page of Maven Site Plugin</a>.</p></section><section><a id="Adding_Extra_Resources"></a> +<p>More information about the site descriptor is available at the <a href="/plugins/maven-site-plugin/examples/sitedescriptor.html">dedicated page of Maven Site Plugin</a>.</p></section><section> <h2>Adding Extra Resources</h2> <p>You can add any arbitrary resource to your site by including them in a <code>resources</code> directory as shown below. Additional CSS files will be picked up when they are placed in the <code>css</code> directory within the <code>resources</code> directory.</p> +<div class="verbatim"> <pre>+- src/ +- site/ +- resources/ @@ -270,9 +271,9 @@ | +- site.css | +- images/ - +- pic1.jpg</pre> + +- pic1.jpg</pre></div> <p>The file <code>site.css</code> will be added to the default XHTML output, so it can be used to adjust the default Maven stylesheets if desired.</p> -<p>The file <code>pic1.jpg</code> will be available via a relative reference to the <code>images</code> directory from any page in your site.</p></section><section><a id="Configuring_Reports"></a> +<p>The file <code>pic1.jpg</code> will be available via a relative reference to the <code>images</code> directory from any page in your site.</p></section><section> <h2>Configuring Reports</h2> <p>Maven has several reports that you can add to your web site to display the current state of the project. These reports take the form of plugins, just like those used to build the project.</p> <p>There are many standard reports that are available by gleaning information from the POM. Currently what is provided by default are:</p> @@ -286,7 +287,7 @@ <li>License</li></ul> <p>To find out more please refer to the <a href="../../plugins/maven-project-info-reports-plugin/">Project Info Reports Plugin</a>.</p> <p>To add these reports to your site, you must add the Project Info Reports plugin to a special <code><reporting></code> section in the POM. The following example shows how to configure the standard project information reports that display information from the POM in a friendly format:</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> ... <reporting> <plugins> @@ -298,14 +299,14 @@ </plugins> </reporting> ... -</project></code></pre> +</project></pre></div> <p>If you have included the appropriate <code><menu ref="reports"/></code> tag in your <code>site.xml</code> descriptor, then when you regenerate the site those items will appear in the menu.</p> <p>Many other plugins provide reporting goals: look for "R" (Reporting) value in the "Type" column of the <a href="/plugins/"> list of plugins</a>. When plugins are both Build and Reporting plugins, defining explicitly the version in the reporting section is usually not necessary since reporting will use the version from <code>build/plugins</code> or <code>build/pluginManagement</code>. Since Maven Site Plugin 3.4, reporting plugin also get configuration from <code>build/pluginManagement</code>.</p> -<p><b>Note:</b> Many report plugins provide a parameter called <code>outputDirectory</code> or similar to specify the destination for their report outputs. This parameter is only relevant if the report plugin is run standalone, i.e. by invocation directly from the command line. In contrast, when reports are generated as part of the site, the configuration of the Maven Site Plugin will determine the effective output directory to ensure that all reports end up in a central location.</p></section><section><a id="Internationalization"></a> +<p><b>Note:</b> Many report plugins provide a parameter called <code>outputDirectory</code> or similar to specify the destination for their report outputs. This parameter is only relevant if the report plugin is run standalone, i.e. by invocation directly from the command line. In contrast, when reports are generated as part of the site, the configuration of the Maven Site Plugin will determine the effective output directory to ensure that all reports end up in a central location.</p></section><section> <h2>Internationalization</h2> <p>Internationalization in Maven is very simple, as long as the reports you are using have that particular locale defined. For an overview of supported languages and instructions on how to add further languages, please see the related article <a href="../../plugins/maven-site-plugin/i18n.html"> Internationalization</a> from the Maven Site Plugin.</p> <p>To enable multiple locales, add a configuration similar to the following to your POM:</p> -<pre><code><project> +<div class="verbatim source"><pre class="prettyprint linenums"><project> ... <build> <plugins> @@ -320,9 +321,10 @@ </plugins> </build> ... -</project></code></pre> +</project></pre></div> <p>This will generate both an English and a French version of the site. If <code>en</code> is your current locale, then it will be generated at the root of the site, with a copy of the French translation of the site in the <code>fr/</code> subdirectory.</p> <p>To add your own content for that translation instead of using the default, place a subdirectory with that locale name in your site directory and create a new site descriptor with the locale in the file name. For example:</p> +<div class="verbatim"> <pre>+- src/ +- site/ +- apt/ @@ -333,7 +335,7 @@ | +- index.apt (French version) | +- site.xml (Default site descriptor) - +- site_fr.xml (French site descriptor)</pre> + +- site_fr.xml (French site descriptor)</pre></div> <p>With one site descriptor per language, the translated site(s) can evolve independently.</p></section></section> </main> </div>