17

I am currently writing a configuration file library (sort of Configgy replacement). For the moment, it's alpha release and stays well on GitHub. However, when the project will be stable enough, I plan to make the resulting JAR file widely available.

On Ruby I used the central RubyGems repository for that purpose. However, I have no idea what's the equivalent. I was thinking about using a Maven repository, but which one? And how?

I am using SBT 0.7.7 and I have no experience with Maven.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
paradigmatic
  • 40,153
  • 18
  • 88
  • 147

3 Answers3

6

To get the most usage, I'd publish it to a Maven repository. There's the Scala Tools repository at http://scala-tools.org/ and there's Maven Central at http://maven.apache.org/guides/mini/guide-central-repository-upload.html.

There's also Scala's sbaz: http://www.scala-lang.org/node/93, which is similar to Ruby's gem.

mpilquist
  • 3,855
  • 21
  • 22
  • Thanks. How can I get the credentials to publish in any of these repositories ? – paradigmatic Jul 03 '11 at 15:05
  • 4
    If you want to host it on the Scala Tools repository, email admin@scala-tools.org. The requirements for hosting and what you need to provide are listed on their website at the link above. Hosting on Maven Central can be done via https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide. Also, Scala Tools repository syncs to Maven Central, so if you host on Scala Tools, it will end up in both repositories. – mpilquist Jul 03 '11 at 15:09
  • 1
    There are instructions on publishing to scala-tools here: http://scala-tools.org/ – retronym Jul 03 '11 at 15:10
  • Thanks. Sbaz adoption seems to be low, any reasons ? – paradigmatic Jul 03 '11 at 15:46
  • Probably because of the maturity of Maven. Here's a blog post that has the same conclusion: http://djhworld.posterous.com/why-isnt-the-scala-bazaar-sbaz-more-actively – mpilquist Jul 03 '11 at 15:57
6

As you already are using GitHub you can release your JAR file as a Maven repository in your own GitHub itself! There is no need to host anywhere.

Read the following articles.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Rajmahendra
  • 3,092
  • 3
  • 31
  • 42
  • 1
    I think this is a good approach when first proving out a project and getting initial feedback, but setting up a third party repo (especially in enterprises with draconian nexus mirrors) can really serve as an impediment to adoption. As obnoxious and roundabout a process as it is, getting your artifact into Maven Central really does make it easier for your users to use. – Justin Searls Jul 03 '11 at 21:53
4

The other answers are pretty good, but here's a checklist:

  • Announce it and new releases of it on scala-announce@googlegroups.com
  • Announce it and new releases of it on implicit.ly (you'll need a posterous account); I think there's an SBT plugin to do this too
  • Publish it to a maven repository -- SBT makes it easy, see the other answers
  • If open source, make the code available on GitHub -- though there are other places, most projects are there, and quite a few that started elsewhere are there now
  • You may wish to use sbaz as well; the problem with sbaz is the lack of good dependency control -- in fact, that's the problem with most package systems
Daniel C. Sobral
  • 295,120
  • 86
  • 501
  • 681