Project

pompompom

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Ruby dependency manager for Maven repository artifacts
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Pom Pom Pom ♫

Pom Pom Pom is a dependency manager for JRuby projects that depend on Maven artifacts. It uses Ivy under the hood.

You can use Pom Pom Pom from the command line:

pompompom com.rabbitmq:amqp-client:1.8.0 com.google.guava:guava:12.0

The JAR files will be installed in lib/ext relative to the current directory.

To avoid having to specify the arguments to pompompom every time you can create a .pompompom file for your project. It must be a YAML file and can contain dependencies, alternate repositories and a custom destination:

---
dependencies:
  - storm:storm:0.7.1
repositories:
  github-releases:  http://oss.sonatype.org/content/repositories/github-releases
  clojars.org:      http://clojars.org/repo
  twitter4j:        http://twitter4j.org/maven2
destination: lib

If you want to run Pom Pom Pom programmatically just look at how bin/pompompom works.

Why not use Maven, Ivy, Buildr or ruby-maven?

Maven makes me want to kill myself, Buildr isn't much better and ruby-maven just shells out to Maven. Ivy is too much XML but the programmatic interface is good, that's why its the basis for Pom Pom Pom. I also wanted a basic library for integrating with Bundler, something that I'm hoping to be able to do in the future.

Version 1 of Pom Pom Pom was written in pure Ruby and did its own POM parsing and dependency resolution, but that was in hindsight pretty insane, Maven's dependency resolution logic is, after all, almost turing complete. It's much better to just piggy back on someone else's stable and supported solution. Hence Ivy.

Copyright and license

See LICENSE in the project root.