Status of sonatypes gem repository for maven artifacts

What’s the story is with sonatype’s plan to host a gem repository for
maven artifacts?

http://gems.sonatype.org isn’t working

$ gem sources -a http://gems.sonatype.org
Error fetching http://gems.sonatype.org:
bad response Bad Gateway 502 (http://gems.sonatype.org/specs.4.8.gz)

headius has an article here:

where he describes installing a maven artifcat as a gem like this:

gem install com.lowagie.itext-rtf

sonatype has an issue tracking this:

Add Ruby GEM support to Nexus:
https://issues.sonatype.org/browse/NEXUS-3123

but it seems like it’s only partly done


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

I added testcases and with this I fixed a few bugs and improved a few
things.

but there are following issues:

  • relocation: maven can relocate any artifact any time. it does not
    really matter for maven since only the groupId and/or the artifactId
    and/or the version changes but not the actual jar ! following the
    relocation means that over time the gems are different in the set of
    dependencies. just duplicate the gem, i.e. having two gems for both
    set of groupId/artifactId/version.

  • exclusions: you can exclude dependency B from the dependency A. this
    is a way of minimizing the classpath to what you really need and not
    take on the extra jars. on the classpath level this can be fixed, but
    the dependency graph will be bigger then the one maven uses and this
    can even lead to conflicts.

  • conflicting versions:
    org.codehaus.plexus.plexus-utils:
    version ~> 1.4.2
    version ~> 2.0.1
    version ~> 1.5.15 (<- that the one maven picks)
    all in one dependency hull. rubygems has no way to resolve this. and I
    came across such thing in one single jar and its dependency hull with
    three libraries. I do not see a way how to fix this. i.e. there will
    be maven artifacts which can not be installed without conflicting
    versions in rubygems.

  • an other thing a came across was the same jar in test scope as well
    as compile scope. maven picked the test scope for the that jar.
    compile/runtime maven-scope will be translated to runtime-dependency
    in rubygems and test/provided will be translated into
    development-dependency. this can be fixed.

in the end the transitive dependency hull of rubygems will be bigger
then the one maven uses for a given artifact. and an extra dependency
can open up a huge world on its own.

conflicting versions for rubygems can not be avoided and having a
bigger hull makes them more likely.

with regards, Kristian

On Sun, Aug 8, 2010 at 2:20 AM, kristian [email protected] wrote:

now you use the command ‘maven’ instead of ‘mvn’. startup feels even
On Fri, Aug 6, 2010 at 2:05 PM, kristian [email protected] wrote:

this:

  • Standard Maven libraries (like the actual Maven libraries) would be
    mostly-Ruby portion in its own gem).

  http://xircles.codehaus.org/manage_email


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

so the gemify-maven-plugin is kind of ready:

  • relocations of artifact work that the relocated artifact will be used

  • exclusion of dependent artifact work in the sense that when
    requiring the maven artifact then the same jar will be added to the
    jruby classloader as maven would do when building the classloader for
    that specific artifact

  • the dependency hull is big enough for rubygem to be complete (it can
    be bigger then what maven uses because of the exclusion which are
    filtered on require and some little issue.

so things work OK for me unless there are version conflicts which
rubygems can not resolve and maven can - these things do exists.

regards Kristian

On Tue, Aug 10, 2010 at 1:40 AM, kristian [email protected] wrote:

version ~> 1.5.15 (<- that the one maven picks)
development-dependency. this can be fixed.
On Sun, Aug 8, 2010 at 2:20 AM, kristian [email protected] wrote:

now you use the command ‘maven’ instead of ‘mvn’. startup feels even
On Fri, Aug 6, 2010 at 2:05 PM, kristian [email protected] wrote:

this:

  • Standard Maven libraries (like the actual Maven libraries) would be
    mostly-Ruby portion in its own gem).

  http://xircles.codehaus.org/manage_email


Kristian Meier + Saumya Sharma + Sanuka Meier
Vadakkethu House,
Edayanmula West PO - 689532,
Pathanamthitta District, Kerala, INDIA

tel: +91 468 2319577

protect your privacy while searching the net: www.ixquick.com

       =
      q(--)p
      '
) (`
      /
     _(<  / )
   (
__|
/__)


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email