Adding some docs for 'Hacking Archiva'

git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@539989 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joakim Erdfelt 2007-05-21 01:26:25 +00:00
parent 3d3fa737e5
commit 399f515cf9
5 changed files with 717 additions and 53 deletions

View File

@ -0,0 +1,63 @@
a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
background: none;
padding-right: 0;
}
body ul {
list-style-type: square;
}
#downloadbox {
float: right;
margin-left: 2em;
padding-left: 1em;
padding-right: 1em;
padding-bottom: 1em;
border: 1px solid #999;
background-color: #eee;
width: 17.5em;
}
#downloadbox h5 {
color: #000;
margin: 0;
border-bottom: 1px solid #aaaaaa;
font-size: smaller;
padding: 0;
margin-top: 1em;
}
#downloadbox p {
margin-top: 1em;
margin-bottom: 0;
}
#downloadbox li {
text-indent: inherit;
}
div.p {
margin-top: 5px;
margin-bottom: 10px;
}
pre.commandline {
border: 1px solid #bbb;
background-color: white;
margin-top: 5px;
margin-bottom: 5px;
font-size: 10pt;
padding: 15px;
color: gray;
}
pre.commandline .input {
color: #55f;
}
pre.commandline .command {
color: black;
font-weight: bold;
}

View File

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1052.3622"
height="744.09448"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
version="1.0"
sodipodi:docbase="C:\code\archiva-trunk\archiva-site\src\site\resources\images"
sodipodi:docname="scheduling.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="560.51091"
inkscape:cy="376.79373"
inkscape:document-units="px"
inkscape:current-layer="layer1"
width="1052.3622px"
height="744.09448px"
inkscape:window-width="877"
inkscape:window-height="713"
inkscape:window-x="1"
inkscape:window-y="-1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g3135">
<rect
rx="19.2857"
ry="19.2857"
y="149.76445"
x="89.955666"
height="45.802929"
width="207.23151"
id="rect3129"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text3131"
y="181.61317"
x="192.79211"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
xml:space="preserve"><tspan
y="181.61317"
x="192.79211"
id="tspan3133"
sodipodi:role="line">Scheduler</tspan></text>
</g>
<g
id="g3140"
transform="translate(125.71429,157.14286)">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1"
id="rect3142"
width="207.23151"
height="45.802929"
x="89.955666"
y="149.76445"
ry="19.2857"
rx="19.2857" />
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
x="192.79211"
y="181.61317"
id="text3144"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3146"
x="192.79211"
y="181.61317">Task Queue</tspan></text>
</g>
<g
transform="translate(192.85715,247.14286)"
id="g3148">
<rect
rx="19.2857"
ry="19.2857"
y="149.76445"
x="89.955666"
height="45.802929"
width="207.23151"
id="rect3150"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text3152"
y="181.61317"
x="192.79211"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
xml:space="preserve"><tspan
y="181.61317"
x="192.79211"
id="tspan3154"
sodipodi:role="line">Task Executor</tspan></text>
</g>
<g
id="g3156"
transform="translate(414.28572,151.42857)">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1"
id="rect3158"
width="207.23151"
height="45.802929"
x="89.955666"
y="149.76445"
ry="19.2857"
rx="19.2857" />
<text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
x="192.79211"
y="181.61317"
id="text3160"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3162"
x="192.79211"
y="181.61317">Task Executor</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -31,9 +31,9 @@
<item name="Maven Configuration" href="/guides/getting-started/maven-configuration.html"/>
<item name="Security Configuration" href="/guides/security-configuration.html"/>
<item name="Other Configuration" href="/guides/configuration.html"/>
<item name="Developing" href="/guides/developing/index.html"/>
<item name="Hacking Archiva" href="/hacking/index.html"/>
</menu>
<menu ref="reports" inherit="bottom"/>
</body>
<skin>

View File

@ -0,0 +1,386 @@
<?xml version="1.0"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<document>
<properties>
<title>Hacking Maven Archiva</title>
</properties>
<body>
<section name="Hacking Maven Archiva">
<div class="p">
So, you wanna start hacking away at Archiva huh?
</div>
<div class="p">
These pages are for you!
</div>
<div class="p">
Be sure to read the sections for Database, Configuration, and
Concepts. Beyond that, the javadoc is your friend.
</div>
<div class="p">
If you don't see the topic covered here, ask! Ask in the
<a href="/mail-list.html">archiva-dev mailing list</a>,
or in the <a href="irc://irc.codehaus.org/#archiva">#archiva</a>
irc channel.
</div>
<subsection name="Getting the Source Code">
<p>
First, you'll need the source code. It is stored in subversion on
the public svn.apache.org site. You can use the
<a href="/source-repository.html">basic subversion access steps</a>,
or follow the steps below...
</p>
<pre class="commandline">
<span class="input">[code]$ <span class="command">svn checkout http://svn.apache.org/repos/asf/maven/archiva/trunk archiva</span></span>
A archiva/archiva-database
A archiva/archiva-database/src
A archiva/archiva-database/src/test
A archiva/archiva-database/src/test/java
... (snip hundreds of checkout entries) ...
A archiva/archiva-scheduled/src/main/resources/META-INF/plexus
A archiva/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml
A archiva/archiva-scheduled/pom.xml
U archiva
Checked out revision 539934.
<span class="input">[code]$ <span class="command">ls</span></span>
archiva
<span class="input">[code]$ <span class="command">cd archiva</span></span>
<span class="input">[code/archiva]$ <span class="command">ls</span></span>
archiva-base/ archiva-reporting/ archiva-web/ maven-meeper/
archiva-cli/ archiva-scheduled/ archiva-workflow/ pom.xml
archiva-database/ archiva-site/ design/
</pre>
</subsection>
<subsection name="The Tools">
<p>
You will need the following tools.
</p>
<ul>
<li>Maven 2.0.5 (or newer)</li>
<li>Java SDK 1.5.0_10 (or newer)</li>
<li>An IDE (or plain editor) of your choice.</li>
</ul>
</subsection>
<subsection name="Building Archiva">
<p>
Archiva uses the Maven tool suite to do all things within
the build. (compile, test, archive, install, deploy, etc...)
The standard goals apply here.
</p>
<p>
There are 2 non-distributable artifacts in use within archiva,
that cannot be placed on the public / global repository system
by anyone but Sun. In order to build archiva, you will need to
manually install these artifact into your local repository.
Follow the steps below.
</p>
<ul>
<li>The <code>javax.resource:connector:1.0:jar</code> artifact</li>
<ol>
<li>Download the 1.0 connector zip from: <a href="Download the 1.0 connector zip from: http://java.sun.com/j2ee/connector/download.html">http://java.sun.com/j2ee/connector/download.html</a></li>
<li>Unpack the zip to gain access to the jar file.</li>
<li>Install it: <code>mvn install:install-file -DgroupId=javax.resource -DartifactId=connector -Dversion=1.0 -Dpackaging=jar -Dfile=connector.jar</code></li>
</ol>
<li>The <code>javax.transaction:jta:1.0.1B:jar</code> artifact</li>
<ol>
<li>Download the 1.0.1B jta zip from: <a href="Download the 1.0.1B jta zip from: http://java.sun.com/products/jta/">http://java.sun.com/products/jta/</a></li>
<li>Install it: <code>mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta Dversion=1.0.1B -Dpackaging=jar -Dfile=jta-1_0_1B-classes.zip</code></li>
</ol>
</ul>
</subsection>
<subsection name="Compile / Test">
<p>
Archiva uses the standard maven goals. Use them.
</p>
<pre class="commandline">
<span class="input">[archiva]$ <span class="command">mvn clean install</span></span>
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] Archiva
... (snip output) ...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 29 seconds
[INFO] Finished at: Sun May 20 17:00:09 EDT 2007
[INFO] Final Memory: 50M/61M
[INFO] ------------------------------------------------------------------------
</pre>
<p>
NOTE: Your first compile will take the longest, as maven will
download all the missing dependencies into your local repository
at this point.
</p>
</subsection>
<subsection name="Running Archiva">
<p>
You have a few ways (in development time) to run archiva.
</p>
<ul>
<li>
<p>Using the jetty:run plugin w/default settings.</p>
<pre class="commandline">
<span class="input">[archiva]$ <span class="command">cd archiva-web/archiva-webapp</span></span>
<span class="input">[archiva-webapp]$ <span class="command">mvn clean jetty:run</span></span>
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ---------------------------------------------------------------------
[INFO] Building Archiva Web :: Application
[INFO] task-segment: [clean, jetty:run]
[INFO] ---------------------------------------------------------------------
[INFO] [clean:clean]
... ( snip lots of output ) ...
2007-05-20 18:47:49.790:/:INFO: Initializing org.codehaus.plexus.webdav.simple.SimpleDavServerComponent
2007-05-20 18:47:49.813::INFO: Started SelectChannelConnector @ 0.0.0.0:9091
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 10 seconds.
</pre>
<p>At this point you can use your browser to goto <a href="http://localhost:9091/">http://localhost:9091/</a></p>
</li>
<li>Using the jetty:run plugin w/mysql settings.
<pre class="commandline">
<span class="input">[archiva]$ <span class="command">cd archiva-web/archiva-webapp</span></span>
<span class="input">[archiva-webapp]$ <span class="command">mvn -Pmysql clean jetty:run</span></span>
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ---------------------------------------------------------------------
[INFO] Building Archiva Web :: Application
[INFO] task-segment: [clean, jetty:run]
[INFO] ---------------------------------------------------------------------
[INFO] [clean:clean]
... ( snip lots of output ) ...
2007-05-20 18:47:49.790:/:INFO: Initializing org.codehaus.plexus.webdav.simple.SimpleDavServerComponent
2007-05-20 18:47:49.813::INFO: Started SelectChannelConnector @ 0.0.0.0:9091
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 10 seconds.
</pre>
</li>
<li>Using the built plexus-application standalone binary.
<pre class="commandline">
<span class="input">[archiva]$ <span class="command">cd archiva-web/archiva-standalone/archiva-plexus-runtime/target</span></span>
<span class="input">[target]$ <span class="command">tar -zxvf archiva-1.0-alpha-1-SNAPSHOT-bin.tar.gz</span></span>
<span class="input">[target]$ <span class="command">cd archiva-1.0-alpha-1-SNAPSHOT/bin</span></span>
<span class="input">[bin]$ <span class="command">ls</span></span>
linux-x86-32 plexus.bat solaris-sparc-64
linux-x86-64 plexus.sh solaris-x86-32
macosx-universal-32 solaris-sparc-32 windows-x86-32
<span class="input">[bin]$ <span class="command">cd linux-x86-32</span></span>
<span class="input">[linux-x86-32]$ <span class="command">ls</span></span>
libwrapper.so run.sh wrapper wrapper.conf
<span class="input">[linux-x86-32]$ <span class="command">./run.sh start</span></span>
</pre>
</li>
</ul>
</subsection>
</section>
<section name="Databases">
<p>There are 2 databases in use by archiva.</p>
<ol>
<li>redback (security) - the database for security related information
such as Users, Roles, Permissions, Login Keys, etc...</li>
<li>archiva - the database that contains the repository information,
reports, statistics, etc...</li>
</ol>
<p>
See the general <a href="/database/index.html">database use and
care</a> section about this.
</p>
</section>
<section name="Configuration">
<p>The configuration of archiva is accomplished via the
<code>$HOME/.m2/archiva.xml</code> file.
</p>
<p>
See the general <a href="/configuration/index.html">configuration</a>
section on details about this.
</p>
</section>
<section name="Concepts">
<ul>
<li>Modules &amp; Source Tree</li>
<li>Plexus Basics</li>
<ul>
<li>Purpose</li>
<li>Role &amp; Hint</li>
<li>Descriptors</li>
<ul>
<li>META-INF/plexus/components.xml</li>
<li>META-INF/plexus/application.xml</li>
<li>src/test/resources/${package}/${test}.xml</li>
</ul>
<li>plexus-maven-plugin</li>
<ul>
<li>generated and/or merge</li>
<li>javadoc tags</li>
</ul>
</ul>
<li>Model</li>
<ul>
<li>Heirarchy of artifacts.</li>
<ul>
<li>Project: ( group Id + artifact Id )</li>
<li>Versioned: ( project + version )</li>
<li>Artifact: ( versioned + classifier + type )</li>
</ul>
<li>Types of objects.</li>
<ul>
<li>Archiva Project Model</li>
<li>Archiva Artifact</li>
<ul>
<li>Java Platform Extension</li>
</ul>
<li>Archiva Repository</li>
<li>Archiva Reposiotry Metadata</li>
<li>Repository Statistics</li>
<li>Repository Problem</li>
</ul>
<li>Types of Repositories</li>
<ul>
<li>Local / Managed</li>
<ul>
<li>file://... URLs only</li>
<li>Indexed</li>
<li>Statistics</li>
</ul>
<li>Remote</li>
</ul>
</ul>
<li>Database / Persistence</li>
<ul>
<li>JDO / JPox</li>
<li>Query / Constraints</li>
<ul>
<li>Declarative</li>
<li>Simple</li>
</ul>
</ul>
<li>Scheduling</li>
<ul>
<li>How plexus-quartz &amp; plexus-taskqueue fit in.</li>
<li>Types of Jobs</li>
<ul>
<li>Repository Scanning</li>
<ul>
<li>Known Files</li>
<li>Ignored Files</li>
<li>Unknown Files</li>
</ul>
<li>Database Updates</li>
<ul>
<li>Periodic</li>
<ul>
<li>Unprocesed Process</li>
<li>Cleanup</li>
</ul>
<li>Nightly</li>
</ul>
</ul>
</ul>
<li>Consumers</li>
<ul>
<li>Purpose</li>
<li>Discovery</li>
<li>Configuration</li>
<li>Types of Consumers</li>
<ul>
<li>Repository Artifact</li>
<li>Database Unprocessed</li>
<li>Database Cleanup</li>
</ul>
</ul>
<li>Repository Connectors</li>
<ul>
<li>Proxy Connector</li>
<ul>
<li>Pre Download Policies</li>
<li>Post Download Policies</li>
</ul>
</ul>
<li>Maven Artifact / Project Libraries</li>
<ul>
<li>Bidirectional Repository Layout</li>
<li>Project Readers</li>
<li>Project Filters</li>
<li>Project Resolvers</li>
</ul>
<li>Indexer</li>
<ul>
<li>Bytecode</li>
<li>File Content</li>
<li>Hashcodes</li>
<li>Analyze / Index</li>
<li>Search / Query</li>
</ul>
<li>Reporting</li>
<ul>
<li>Reporting Manager</li>
<li>Artifact Reports</li>
<li>Metadata Reports</li>
<li>Project Reports</li>
</ul>
<li>Web Framework</li>
<ul>
<li>Webwork &amp; XWork</li>
<li>&lt;archiva: /&gt; taglib</li>
<ul>
<li>&lt;archiva:copy-paste /&gt;</li>
<li>&lt;archiva:download /&gt;</li>
<li>&lt;archiva:group-id-link /&gt;</li>
</ul>
</ul>
</ul>
</section>
</body>
</document>

View File

@ -23,62 +23,74 @@
<title>Welcome to Maven Archiva</title>
</properties>
<body>
<section name="Welcome to Maven Archiva">
<div id="downloadbox">
<h5>Get Archiva 0.9 Alpha 2</h5>
<p>
<a href="download.html">
<img valign="top" src="http://maven.apache.org/images/folder-open.gif" border="0" alt="" title="download"/>
Download
</a>
Archiva
<small>(20Mb)</small>
</p>
<ul>
<li>
<a href="download.html#requirements">System Requirements</a>
</li>
<li>
<a href="download.html#installation">Installation Instructions</a>
</li>
<!--
<li>
<a href="release-notes.html">Release Notes</a>
</li>
<li>
<a href="guides/getting-started/index.html">Getting Started</a>
</li>
<li>
<a href="guides/index.html">Documentation</a>
</li>
-->
</ul>
</div>
<div id="downloadbox">
<h5>Get Archiva 0.9 Alpha 2</h5>
<p>
<a href="download.html">
<img valign="top" src="http://maven.apache.org/images/folder-open.gif" border="0" alt="" title="download"/>
Download
</a>
Archiva
<small>(20Mb)</small>
</p>
<ul>
<li>
<a href="download.html#requirements">System Requirements</a>
</li>
<li>
<a href="download.html#installation">Installation Instructions</a>
</li>
<!--
<li>
<a href="release-notes.html">Release Notes</a>
</li>
<li>
<a href="guides/getting-started/index.html">Getting Started</a>
</li>
<li>
<a href="guides/index.html">Documentation</a>
</li>
-->
</ul>
</div>
<p>Archiva (the Maven repository manager) is currently under development. It provides several pieces of
functionality for your remote repository:</p>
<section name="Welcome to Maven Archiva">
<div class="p">
Archiva is currently under development.</div>
<div class="p">
Archiva is a build artifact repository manager for use with
build tools such as <a href="http://maven.apache.org">maven</a>,
<a href="http://maven.apache.org/continuum/">continuum</a>,
and <a href="http://ant.apache.org/">ant</a>.</div>
<div class="p">
It provides the following benefits:</div>
<ul>
<li>Browsing on POM information by group and artifact ID</li>
<li>Search over various information in the POM and filename</li>
<li>Locate JAR by checksum</li>
<li>Repository management through reporting and maintenance</li>
<li>A place for like-minded developers to share artifacts
that are private in nature, such as found in proprietary
development shops.</li>
<li>The ability to act as a nearby (proxy) cache of popular global
repositories for better build performance.</li>
<li>Secure your repositories! by user, by role, by repository,
read vs write access controls.</li>
<li>A tool to browse the repository information, and present it
in a user friendly way.</li>
<li>Maximize code reuse via a search / research tool to help
find artifacts that might be of the most use for your
immediate problem.</li>
<li>Implement controls on the artifacts that the developers
in your organization use.</li>
<li>Identify unknown artifacts based on large database of
known checksums for known artifacts.</li>
<li>Reporting on artifact usage, to help identify those
projects that are using your code.</li>
<li>Reporting tools.</li>
<li>Maintenance tools.</li>
</ul>
<p> We welcome developers to the Maven community who are interested in contributing. If you'd like to discuss
archiva, subscribe and post to <a href="mail-lists.html">the development mailing list</a>
<code>archiva-dev@maven.apache.org</code>.</p>
<p>If you'd like to obtain the code, you can get it from Subversion.
See <a href="source-repository.html">SCM details</a> for more information.</p>
<p>Bugs, issues and new ideas should be reported in the issue tracker -
see <a href="issue-tracking.html">this page</a>.</p>
<p>See the <a href="http://docs.codehaus.org/display/MAVENUSER/Archiva">the Archiva wiki</a>
for more information, or log onto the IRC channel #archiva:irc.codehaus.org.</p>
</section>
<section name="Latest News">
<p>
<ul>
@ -86,5 +98,54 @@
</ul>
</p>
</section>
<section name="Need Help?">
<p>Join the conversation!</p>
<ul>
<li>Try the Documentation: (see the navigation menu on the left)</li>
<li><a href="http://www.nabble.com/archiva-users-f16426.html">Archiva
Users</a> <a href="mail-lists.html">Mailing List</a>:
<a href="mailto:archiva-users-subscribe@maven.apache.org">archiva-users@maven.apache.org</a></li>
<li>Archiva IRC Channel:
<a href="irc://irc.codehaus.org/#archiva">#archiva</a> on
<a href="http://irc.codehaus.org/">irc.codehaus.org</a></li>
</ul>
</section>
<section name="Contributing">
<div class="p">
We welcome developers to the Maven community who are interested
in contributing. If you'd like to discuss Archiva, subscribe and
post to <a href="mail-lists.html">the development mailing list</a>
<code>archiva-dev@maven.apache.org</code>.
</div>
<div class="p">
Read the <a href="hacking/">Hacking Archiva</a> document.
</div>
<div class="p">
If you'd like to obtain the code, you can get it from Subversion.
See <a href="source-repository.html">SCM details</a> for more
information.
</div>
<div class="p">
Bugs, issues and new ideas should be reported in the issue tracker -
see <a href="issue-tracking.html">this page</a>.
</div>
<div class="p">
A user managed wiki of alternative documentation is available a
<a href="http://docs.codehaus.org/display/MAVENUSER/Archiva">the
Archiva wiki</a>.
</div>
<div class="p">
Want to chat live with some of the developers? join us in
the <a href="irc://irc.codehaus.org/#archiva">#archiva</a>
channel on <a href="http://irc.codehaus.org">irc.codehaus.org</a>.
</div>
</section>
</body>
</document>