Hacker News new | ask | show | jobs
by rb2k_ 5055 days ago
In Ruby:

To make sure I have the right version of my libraries I use bundler

To make sure I have the right version of my code I use git

To make sure I have the right version of other applications I use chef.

Has worked fine for me so far...

I guess it's the usual unix philosophy where each tool does a single job and does it well.

2 comments

So basically one can replace one tool in Java (maven) with four different tools with different conventions and usage scenarios and call the Ruby way simple, and Java way too complicated?
It's better to use different good tools, rather than one bad tool. And by the way, since when is Maven SCM? AFAIK Maven just pollutes SCM with it's dumb release plugin.
If you don't want your artifacts uploaded to some place (like your SCM) then don't do it.

But let me explain how useful this actually is.

When working on a Java project with a team of people, we usually use Maven and some CI tool like Jenkins or Bamboo. People commit code, Jenkins run a Maven build and then either Jenkins or Maven uploads build artifacts to a central repository.

Artifacts usually are: the jar/war/ear file, the -src.jar and the -javadoc.jar.

If code is finished then it will be a x.y release, otherwise it will be uploaded as something like 1.0-SNAPSHOT. Snapshots are usually timestamped.

Now I have a standard place where other projects can find dependencies, where the ops team can grab releases, where developers can find dependencies, code and documentation.

Three extra lines in a pom.xml and you get all that. Your IDE now picks it up and keeps it up to date. You can click/hotkey on anything and it will show source or documentation.

You call it pollution, I call it a great and pretty much completely automatic infrastructure that makes development so much easier.

Err, I'd have to disagree with the assessment that Ruby tools are good and Maven is bad.
(maven only solves one of those problems)
Some libraries that are being stored at Maven Repository have 2 additional artifacts: source-jar and javadoc-jar.

If you're using Eclipse and Maven plugin, the beauty is that when you hit a shortcut key to navigate to either the Definition or the Implementation of 3rd-party open source library, the Maven plugin will download the source code for you and voila, no configuration or anything like that needs to be done with Eclipse (telling Eclipse where the path, etc).

It's powerful.