Skip to content
webapp which hosts rubygems or a proxy to rubygems. delivers gem maven artifacts as well
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
src get upload via nexus gem working Nov 12, 2016
LICENSE Initial commit May 15, 2014
pom.xml pick latest version Nov 12, 2016


Build Status

webapp which hosts rubygems or a proxy to rubygems. delivers gem maven artifacts as well. the proxy can be configured to be caching proxy or non-caching proxy


the regular webapp with hosted and (caching-)proxy can be built with

 mvn package

or just run it in place with

 mvn jetty:run

where the hosted rubygems are located under http://localhost:8989/hosted and the proxy with as source is reachable under http://localhost:8989/caching or http://localhost:8989/proxy. and the http://localhost:8989/merge will combine all three to on rubygems repository.

executable standalone

you also can start the war like this (using embedded jetty):

 mvn package -Pexecutable
 java -jar target/rubygems.war

and adjust the <> to your liking.


add them to your gem command

  • gem sources add <http://localhost:8989/hosted>
  • gem sources add <http://localhost:8989/caching>
  • gem sources add <http://localhost:8989/proxy>
  • gem sources add <http://localhost:8989/merged>

or use the (caching-)proxy with bundler (example only for

  • bundler config mirror. http://localhost:8989/proxy
  • bundler config mirror. http://localhost:8989/caching
  • bundler config mirror. http://localhost:8989/merged

the Gem-Artifacts are accessible via

you need a mirror declaration and in your settings.xml

      <name>Rubygems Prereleases</name>

since some old gem-artifacts use the those repositories (old in sense they originally came from

for more details about Gem-Artifacts see for a solution with access control, more advanced proxy features and merging (group) to repositories see


the underlying library nexus-ruby-tools can handle gem push my-1.0.0.gem but somehow I have not deciphered how to use and a local repo without manually editing the config files.

the easiest way is to use the nexus gem which was tailor made for the nexus-ruby-tools.

gem install nexus

then you can upload your gem with

gem nexus my-1.0.0.gem

it will prompt for the url which is http://localhost:8989/hosted from above. empty username and password will finally push the gem. since the username and passoword was empty it will be prompted again.

non-caching proxy

this proxy configuration does not cache the gem-files itself but instead sends a redirect to <>. all other files are cached the same way as the caching proxy:

    mvn jetty:run -P proxy

with url <http://localhost:8989/proxy> (not yet installed)

the webapp for this rubygems-proxy is under the profile **legacy**

     mvn clean package -Plegacy

which is just a proxy (mvn jetty:run -Plegacy)

*  <http://localhost:8989/releases>
*  <http://localhost:8989/prereleases>


some integration tests for proxy feature can be executed with

    mvn -P run-its
    mvn -P run-its -Plegacy

deploy to maven central

    mvn versions:set
    git ci -m 'prepare release' pom.xml
    mvn -Prelease,executable
    git tag ...
    mvn versions:set
    git ci -m 'next dev version' pom.xml
    git push
    git push --tags


1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request


enjoy :) 
You can’t perform that action at this time.