From: Stephen Duncan Date: 2007-02-24T16:58:15+09:00 Subject: Re: maven for ruby? One thing I forgot to mention. I'm not familiar with the details, as I'm mostly interested in Ruby for non-rails projects. But there's another technique for certain kinds of dependencies, specifically, Rails plugins. In that case, I've noticed that some people advocate using svn:externals to pull down the plugins at checkout time, which, of course, is something that works better in Ruby than Java, since the distinction between source & runtime artifacts goes away. It seems "icky" to me to rely on a feature of a particular SCM implementation for handling code-sharing, but I don't have any pragmatic arguments against it. -Stephen On 2/24/07, Stephen Duncan wrote: > So, I'm coming from the same place you are, as a big proponent of > Maven 2, trying to figure out the Ruby world. > > First, RubyGems plays the role of the package management tool: there's > a central repository of packages, it handles transitive dependencies, > and you can run your own gem server for your own repository. Unlike > the Java world, when you deploy your app, you would install the gems > on the server, and use them as gems, vs. Java/Maven where your local > Maven repo is only used during development, and the app is deployed > with the dependencies in a jar, war, or ear. Also RubyGems defaults > to installing gems system-wide, as opposed to the per-user local > repository of Maven. > > Hoe ( http://seattlerb.rubyforge.org/hoe/ ) can play some of the role > of Maven as well, providing some convention-over-configuration build > tools that you can use for your non-rails library projects that you're > going to be pulling together. (Obviously, rails itself plays the > convention-based build role for a rails app). > > - Stephen > > On 2/23/07, Andrew Arrow wrote: > > Hello, I come from the Java world and really enjoyed using maven: > > > > http://maven.apache.org/ > > > > The big pluses maven gave us were: > > > > 1. Easily maintain version numbers for projects. > > Maven would start you at 1.0 and after each release bump your project to > > 1.1, 1.2 etc. It would also tag the version in SVN for you, and make > > your current working version 1.2-SNAPSHOT until your next 1.3 release. > > > > 2. Central repository for all projects with dependency management. > > You can just say I need projectX version 1.2 and it'll magically get > > that for you AND get projectY version 1.1 because it knowns projectX > > depends on projectY. > > > > Both these features made it very easy to break any large project into > > many smaller projects. The more smaller projects you have with well > > defined API's make everything better. One team can work on projectA, > > while another works on projectB. ProjectA guys will often say, "Hey I > > need this from ProjectB..." and in a few minutes there's a new version > > of B ready on the central repository. > > > > I'm just learning Rails, but so far I have a huge rails project with > > many controllers, many models, many plugins, a large lib folder, etc. > > > > Is there a good maven for ruby yet? Is capistrano the answer? I want > > to split my large rails project into like 20 separate projects and then > > have a small skeleton rails app that just pulls the 20 together. > > > > Thanks. > > > > -- > > Posted via http://www.ruby-forum.com/. > > > > > > > -- > Stephen Duncan Jr > www.stephenduncanjr.com > -- Stephen Duncan Jr www.stephenduncanjr.com