title: Tips for maintaining an internal Maven Repository?
body: <p>I'm interested in maintaining a <a href="http://en.wikipedia.org/wiki/Apache_Maven" rel="nofollow noreferrer">Maven</a> 2 repository for my organization.  What are the some of the pointers and pitfalls that would help.</p>
  <p>What are guidelines for users to follow when setting up standards for downloading from or publishing their own artifacts to the repository when releasing their code?  What kinds of governance/rules do you have in place for this type of thing? What do you include about it in your developer's guide/documentation?</p>
  <p><strong>UPDATE</strong>: We've stood up Nexus and have been very happy with it - followed most of Sal's guidelines and haven't had any trouble.  In addition, we've restricted deploy access and automated build/deployment of snapshot artifacts through a Hudson CI server.  Hudson can analyze all of the upstream/downstream project dependencies, so if a compilation problem, test failure, or some other violation causes the build to break, no deployment will occur.  Be weary of doing snapshot deployments in Maven2/Maven3, as the metadata has changed between the two versions.  The &quot;Hudson only&quot; snapshot deployment strategy will mitigate this.  We do not use the Release Plugin, but have written some plumbing around the <a href="http://mojo.codehaus.org/versions-maven-plugin/" rel="nofollow noreferrer">Versions plugin</a> when going to move a snapshot to release.  We also use m2eclipse and it seems to work very well with Nexus, as from the settings file it can see Nexus and knows to index artifact information for lookup from there.  (Though I have had to tweak some of those settings to have it fully index our internal snapshots.)  I'd also recommend you deploy a source jar with your artifacts as a standard practice if you're interested in doing this.  We configure that in a super POM.</p>
  <p>I've come across <a href="http://www.sonatype.com/resources/whitepapers/repository-management-stages-of-adoption" rel="nofollow noreferrer">this Sonatype whitepaper</a> which details different stages of adoption/maturity, each with different usage goals for a Maven Repository manager.</p>