Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#12 Deploy artifacts to maven central please

open
Ken Arnold
None
5
2010-05-02
2009-08-23
Rob Manning
No

Hi,

I am working to mavenize a project (SQuirreL SQL Client : https://sourceforge.net/projects/squirrel-sql/\) which ships the napkinlaf. I was pleased to find that you have a pom already (not many lafs are using maven yet). However, I could not locate your artifacts using the following repo search tools:

http://mavensearch.net/search?q=net.sourceforge.napkinlaf
http://mvnrepository.com/search.html?query=net.sourceforge.napkinlaf
http://maven.ozacc.com/search?keyword=net.sourceforge.napkinlaf&type=all
http://www.jarvana.com/jarvana/search?search_type=project&project=net.sourceforge.napkinlaf

(I resorted to searching when I couldn't locate the artifact in maven central: http://repo1.maven.org/maven2/net/sourceforge/\)

Unfortunately, I cannot deploy a pom for my project to maven central if it references an artifact which is not hosted in maven central. So, do you have any plans to deploy your artifacts to maven central ? If not, I will have to create a dummy pom.xml file using my own groupId to host your artifact in maven central for my project's artifacts.

Rob Manning

Discussion

  • Rob Manning
    Rob Manning
    2009-09-27

    pom from trunk modified for napkinlaf 1.2 artifact

     
    Attachments
  • Rob Manning
    Rob Manning
    2010-05-02

    • assigned_to: nobody --> kcrca
     
  • Rob Manning
    Rob Manning
    2010-05-02

    I don't know if you have heard, but Sonatype will give you an account on their Nexus repo which automatically syncs to Maven Central every hour. You would only need to sign up and modify your poms slightly and then do a 'maven deploy'. Here is the link:

    http://nexus.sonatype.org/oss-repository-hosting.html

    Rob

     
  • Ken Arnold
    Ken Arnold
    2010-05-02

    This is all good, I'm supportive but ignorant. Can you explain a bit to me what the changes mean, and how we would deploy our own build? Or if you like, I could give you the rights to just do it instead of teaching me, though I'd still like an explanation.

     
  • Rob Manning
    Rob Manning
    2010-05-02

    Hi Ken,

    I'd be happy to explain the process. To get your artifacts to Maven Central, there are several requirements. First your "overall" pom is a great example of the kind of metadata that will pass validation at Sonatype for sync'ing to Maven Central - the module poms need the same amount of metadata. Then you will need to create/register a GPG key with pgp.mit.edu (http://www.sonatype.com/people/2010/01/how-to-generate-pgp-signatures-with-maven/). The next step is to create a JIRA ticket to setup a project workspace and your account on Nexus so that you can deploy your artifacts there - they will verify your public GPG key at this point. The only requirement here is that it be done by someone who has commit rights to the project, and the groupId must reflect the domain that hosts the project; you are good here as well. Next thing is to modify your distributionManagement section in your overall pom to point to Sonatype's Nexus staging repository. Then you are ready to run mvn release:prepare and mvn release:perform; this uploads your artifacts into a staging repository on Nexus which you can use to test your artifacts (if desired). The final step is to login with your account on the Nexus repository and promote your staged artifacts. The promoted artifacts will be validated and if they pass validation (pom metadata and gpg signature files), the repository will automatically sync them to Maven central. I have been through this process and I would be happy to help out with the changes necessary.

    Rob