<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva &#x2013; Archiva Sites Publishing</title>
    <link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../css/site.css" />
    <link rel="stylesheet" href="../css/print.css" media="print" />
      <script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
<!-- Google Analytics -->
        <script src='//www.google-analytics.com/analytics.js'></script>
        <script>
          window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;

          ga('create', 'UA-140879-5', 'auto');
          ga('send', 'pageview');

        </script>
      </head>
    <body class="topBarEnabled">
                      <a href="https://github.com/apache/archiva">
      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
        alt="Fork me on GitHub">
    </a>
      <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container"><div class="nav-collapse">
            <ul class="nav">
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="../index.html" title="About">About</a></li>
            <li><a href="../download.html" title="Downloads">Downloads</a></li>
            <li><a href="../versions.html" title="Versions">Versions</a></li>
            <li><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
            <li><a href="../security.html" title="Security">Security</a></li>
            <li class="dropdown-submenu">
<a href="../" title="Documentation">Documentation</a>
              <ul class="dropdown-menu">
                  <li><a href="../docs/2.2.3/" title="Release 2.2.3">Release 2.2.3</a></li>
                  <li><a href="../docs/3.0.0-SNAPSHOT/" title="Dev 3.0.0-SNAPSHOT">Dev 3.0.0-SNAPSHOT</a></li>
              </ul>
            </li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="../developers/building.html" title="Build Apache Archiva">Build Apache Archiva</a></li>
            <li><a href="../get-involved.html" title="Get involved">Get involved</a></li>
            <li><a href="../developers/how-we-do-things.html" title="How we do things">How we do things</a></li>
            <li><a href="../redback" title="Redback">Redback</a></li>
            <li><a href="../redback/components" title="Redback Components">Redback Components</a></li>
            <li class="dropdown-submenu">
<a href="../jsui/index.html" title="Javascript application Architecture">Javascript application Architecture</a>
              <ul class="dropdown-menu">
                  <li><a href="../jsui/rest.html" title="Rest service">Rest service</a></li>
                  <li><a href="../jsui/template-loading.html" title="JS Template loading">JS Template loading</a></li>
                  <li><a href="../jsui/i18n.html" title="i18n">i18n</a></li>
                  <li><a href="../jsui/knockout-binding.html" title="Knockout Binding">Knockout Binding</a></li>
                  <li><a href="../jsui/generics-js.html" title="Generic Javascipts">Generic Javascipts</a></li>
              </ul>
            </li>
            <li><a href="../developers/releasing.html" title="Releasing">Releasing</a></li>
            <li><a href="../developers/publishing-site.html" title="Site Publish">Site Publish</a></li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
            <li><a href="http://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="dropdown-submenu">
<a href="../project-info.html" title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                  <li><a href="../integration.html" title="CI Management">CI Management</a></li>
                  <li><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li>
                  <li><a href="../issue-tracking.html" title="Issue Management">Issue Management</a></li>
                  <li><a href="../license.html" title="Licenses">Licenses</a></li>
                  <li><a href="../team-list.html" title="Team">Team</a></li>
                  <li><a href="../source-repository.html" title="Source Code Management">Source Code Management</a></li>
              </ul>
            </li>
        </ul>
      </li>
              </ul>
<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
      <input value="http://archiva.apache.org/" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript">asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
                    </div>
        </div>
      </div>
    </div>
    <div class="container">
      <div id="banner">
        <div class="pull-left"><a href="../index.html" id="bannerLeft"><img src="../images/archiva.png"  alt="Apache Archiva"/></a></div>
        <div class="pull-right"><a href="http://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li class=""><a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Archiva">Archiva</a><span class="divider">/</span></li>
    <li class="active ">Archiva Sites Publishing</li>
        <li id="publishDate" class="pull-right">Last Published: 07 Apr 2018</li>
        </ul>
      </div>
        <div id="bodyColumn" >
<div class="section">
<h2><a name="Publishing_the_Archiva_Site"></a>Publishing the Archiva Site</h2>
<p>The Archiva site, documentation and reference documentation are now published to <tt>http://archiva.apache.org/</tt> using the <a class="externalLink" href="http://www.apache.org/dev/project-site.html#svnpubsub"> ASF's svnpubsub</a> service.</p>
<p>The files published to the site are all stored under the Subversion repository at <a class="externalLink" href="http://svn.apache.org/repos/asf/archiva/site-content/">http://svn.apache.org/repos/asf/archiva/site-content/</a>.</p>
<p>This mostly operates like a normal site deployment, though there are some specific customisations and special instructions for the reference library. The processes follow those described for the <a class="externalLink" href="http://maven.apache.org/plugins/maven-scm-publish-plugin/">Maven SCM Publish Plugin</a> for <a class="externalLink" href="http://maven.apache.org/plugins/maven-scm-publish-plugin/examples/one-module-configuration.html"> Single module projects</a> and <a class="externalLink" href="http://maven.apache.org/plugins/maven-scm-publish-plugin/examples/multi-module-configuration.html"> Multi-module projects</a> as applicable.</p>
<p>Each site checks out the production site data into the <tt>site-publish</tt> directory of the current project, to avoid being cleaned as part of the build. It is ignored by <tt>svn</tt> operations, but you should ensure that the checkout is clean if you ever cancel or have a failure during a publish operation. You can check it is clean by ensuring there is no data from <tt>git status</tt> in that directory, or by removing it and having it get checked out again.</p>
<div class="section">
<h3><a name="Editing_and_Publishing_the_Main_Site"></a>Editing and Publishing the Main Site</h3>
<p>The site displayed at the root of <a class="externalLink" href="http://archiva.apache.org">http://archiva.apache.org</a> (where you are reading this) has its source code in Git at <a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva-site.git">https://gitbox.apache.org/repos/asf/archiva-site.git</a>.</p>
<p>To edit and publish the site, do the following:</p>
<ol style="list-style-type: decimal">
<li>Checkout the source code from Git (if you follow the instructions in <a href="./building.html"> Building Archiva</a>, you know how to have it.</li>
<li>Make edits and check them using <tt>mvn site</tt> or <tt>mvn site:run</tt> until satisfied.</li>
<li>Commit your changes (making sure your working copy is completely up to date first)</li>
<li>Publish the site:
<div>
<pre>mvn site-deploy</pre></div></li></ol>
<p>This site deployment can be done at any time, and is not tied to releases.</p>
<p>Note that since the main site also contains the (large!) <tt>docs</tt> and <tt>ref</tt> directories in the <tt>site-publish</tt> directory, there is a special <tt>setup-checkout</tt> profile in place to get the initial checkout without those directories. This will normally be activated whenever the <tt>site-publish</tt> directory is missing - if you happen to have active profiles from your <tt>settings.xml</tt> you may need to enable it explicitly whenever you do a deployment and that checkout is missing: <tt>mvn site-deploy -Psetup-checkout</tt> </p></div>
<div class="section">
<h3><a name="Editing_and_Publishing_the_Archiva_Documentation"></a>Editing and Publishing the Archiva Documentation</h3>
<p>The documentation displayed under the subdirectories of <a class="externalLink" href="http://archiva.apache.org/docs/">http://archiva.apache.org/docs/</a> has its source code in Git at <a class="externalLink" href="https://gitbox.apache.org/repos/asf/archiva.git">https://gitbox.apache.org/repos/asf/archiva.git</a> directory archiva-docs, which is part of the main project checkout.</p>
<p>The instructions for managing the documentation is the same as for the main site, being published from the directory using:</p>
<div>
<pre>mvn site-deploy</pre></div>
<p>However, in this case it is typically done as part of a release process - see <a href="./releasing.html"> Releasing Archiva</a> for instructions on doing this.</p>
<p>The documentation remains versioned based on the release it is related to. To best manage this with svnpubsub, the site is always published into a directory <tt>docs/latest</tt>, only requiring a small number of modifications to be made. Then, as part of the release instructions, the <tt>latest</tt> directory is copied to the versioned location - for example, <tt>http://svn.apache.org/repos/asf/archiva/site-content/docs/1.4-M4</tt>.</p>
<p>For <tt>site:stage</tt> to apply correctly without needing a full checkout, a workaround is applied by setting the <tt>distributionManagement/site/url</tt> element to match that of the parent site. The value is then overridden with the correct value in the <tt>maven-scm-publish-plugin</tt> configuration. This avoids the Site plugin attempting to relativize links incorrectly.</p></div>
<div class="section">
<h3><a name="Editing_and_Publishing_the_Reference_Documentation"></a>Editing and Publishing the Reference Documentation</h3>
<p>The reference documentation, including JavaDocs and source cross-reference, is displayed under the URL <a class="externalLink" href="http://archiva.apache.org/ref">http://archiva.apache.org/ref</a>. At this time, only the latest reference documents are retained. They require quite a lot of space, and historical information is of less relevance to Archiva developers or users.</p>
<p>To publish the latest reference documents, you need to run:</p>
<div>
<pre>cd archiva-modules
mvn site site:stage scm-publish:publish-scm
or
sh ./deploySite.sh</pre></div>
<p>This will likely cause a very large commit, and should be done infrequently. Once per release is likely to be adequate.</p></div>
<div class="section">
<h3><a name="Publishing_Redback_site"></a>Publishing Redback site</h3>
<p>The redback is stored under the Subversion repository at <a class="externalLink" href="https://svn.apache.org/repos/asf/archiva/redback/redback-site/trunk">https://svn.apache.org/repos/asf/archiva/redback/redback-site/trunk</a>.</p>
<p>It's displayed under the URL <a class="externalLink" href="http://archiva.apache.org/redback">http://archiva.apache.org/redback</a>.</p>
<p>To publish documentation, you need to run:</p>
<div>
<pre>mvn site-deploy</pre></div></div>
<div class="section">
<h3><a name="Publishing_Redback_Core_reference"></a>Publishing Redback Core reference</h3>
<p>The Redback core reference is displayed under the URL <a class="externalLink" href="http://archiva.apache.org/redback/core">http://archiva.apache.org/redback/core</a>.</p>
<p>It contains javadoc for Redback core.</p>
<p>To publish documentation, you need to run:</p>
<div>
<pre>mvn clean site-deploy scm-publish:publish-scm
or
sh ./deploySite.sh</pre></div></div>
<div class="section">
<h3><a name="Publishing_Redback_Components_reference"></a>Publishing Redback Components reference</h3>
<p>The Redback components reference is displayed under the URL <a class="externalLink" href="http://archiva.apache.org/redback/components">http://archiva.apache.org/redback/components</a>.</p>
<p>It contains javadoc for Redback components.</p>
<p>To publish documentation, you need to run:</p>
<div>
<pre>mvn clean site-deploy scm-publish:publish-scm
or
sh ./deploySite.sh</pre></div></div></div>
        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
<div class="row pull-left">Apache Archiva, Archiva, Apache, the Apache feather logo, and the Apache Archiva project logos are trademarks of The Apache Software Foundation.</div>
      <div class="row">
        &nbsp;
      </div>
      <div class="row">
      <p>
        <a href="http://archiva.apache.org/privacy-policy.html">Privacy Policy</a>
        </p>
      </div>
        </div>
        <p id="poweredBy" class="pull-right">  <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>
  </p>
                          <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_thin_badge.js"></script>
    </div>
        </div>
    </footer>
    </body>
</html>