mgodave/barge — pull request #22 by rholder (2013-10-06 23:37:28+00:00)
Title: Migrate to Netflix-style Gradle multi-module layout

Here are some notes on what I ported from the original pom's:

- I left the original pom's unmodified so this can probably live alongside your original build until you feel like cutting over.
- I left off the `checkstyle` and `jacoco` plugins since they'll probably require some tinkering, so uncomment them if you feel like fiddling around.
- Gradle has a Shadow plugin that has most of the Maven Shade functionality, but I'm not sure if you really need this until you have a final artifact to distribute so I didn't pull it in.
- I dropped the `application` plugin in the `barge-core` module and set it to use the `org.robotninjas.barge.Raft` main, but it could probably live in it's own module when you decide how you'd like people to pull down a full distribution (maybe something like a `barge-server` that rolls up a self-contained application archive, etc.). I've had good luck using that plugin over some other solutions like fatjars and one-jars when I didn't have a "this must be a single artifact" constraint.
- I spent way longer than probably necessary dinking around with a Gradle protobufs plugin and instead just opted for an ad-hoc task to update the generated bindings. Just run `gradle updateProtobufs` and it'll drop everything in the right place in your src tree. It's not as polished as it could be but does fuel some desire to create a better protobufs plugin.
- The modified `netty-protobuf-rpc` snapshot is still read from a local Maven repo.
- Gradle's `idea` plugin appears to correctly generate the module structure in IntelliJ based on what I crudely tested.
- I added the Gradle wrapper so you don't need a real Gradle installed anywhere to build/dev.