Over a million developers have joined DZone.

How to Compile Storm 0.8.2 on Mac OS X

DZone's Guide to

How to Compile Storm 0.8.2 on Mac OS X

· DevOps Zone
Free Resource

The DevOps Zone is brought to you in partnership with Sonatype Nexus. The Nexus Suite helps scale your DevOps delivery with continuous component intelligence integrated into development tools, including Eclipse, IntelliJ, Jenkins, Bamboo, SonarQube and more. Schedule a demo today

Here is a set of instructions to build and package from source either storm-0.8.2.jar or the complete storm-0.8.2.zip (with all dependencies). I assume packaging later versions will be similar, just be careful about dependencies in different versions.

First off, let’s clarify that this is not required if your goal is just to install a Storm cluster or to develop topologies, for that it’s easier to download a package from the Storm download page and follow the Storm installation instructions.

I am executing this on Mac OS X 10.7.5 with Java 1.7.0.

First, install some building tools:

brew install automake
brew install libtool
brew install pkg-config

We also need Leiningen 1.x, a Clojure build and packaging tool (Storm compilation process currently fails with Leiningen 2.x):

cd /usr/local/
brew versions leiningen
git checkout a9b361d /usr/local/Library/Formula/leiningen.rb
brew install leiningen

Surprisingly, compiling the Storm code also requires to have a Zero MQ server installed (ahem …), so, well, let’s install that. Storm documentation specifically mentions Zero MQ 2.1.7:

cd /usr/local/
brew versions zmq
git checkout ed41f79 Library/Formula/zeromq.rb
brew install zmq 

We also need jzmq. Storm 0.8.2 comes with jzmq-2.1.0.jar, so let’s install that version:

cd wherever/makes/sense
git clone https://github.com/zeromq/jzmq.git
cd jzmq/
git checkout v2.1.0
sudo make install

We’re finally ready to get our hands on Storm itself:

cd wherever/makes/sense
git clone https://github.com/nathanmarz/storm.git
git checkout 0.8.2

If you just need to build the jar, run this:

lein jar

You can also create the full release package like this:

chmod 744 bin/build_release.sh

Et voilà. Happy hacking :-)

The DevOps Zone is brought to you in partnership with Sonatype Nexus. Use the Nexus Suite to automate your software supply chain and ensure you're using the highest quality open source components at every step of the development lifecycle. Get Nexus today


Published at DZone with permission of Svend Vanderveken. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}