nabeelmukhtar / github-java-sdk

This project aims to provide a Java wrapper for Github API.
http://develop.github.com/
64 stars 22 forks source link

Updated build.xml to fix build errors #4

Closed scottferg closed 10 years ago

scottferg commented 13 years ago

Looks like you refactored the directory structure at some point. Tweaked the build.xml so that the project builds correctly now.

briantopping commented 13 years ago

@scottferg: just curious, do you prefer Ant over Maven?

scottferg commented 13 years ago

I'm an Android developer, so I just default to Ant. So, yes, but without much reasoning ;)

briantopping commented 13 years ago

Well, I if I can help you get started on Maven, I'm friendly like that...

scottferg commented 13 years ago

What are the perks? Android supplies a build.xml out of the box for a new app, with a pretty simple target set. What does Maven do differently/better?

briantopping commented 13 years ago

The answer actually depends on whether you are doing the projects by yourself or desire to get others involved. People that know Maven can walk in on a Maven project and be fluent with what that project does in minutes, but the same is rarely true of people who know Ant walking in on an Ant project. Maven build descriptions are declarative (versus procedural), so it's easy to look at a declaration and see what builds that component. For Ant, different developers will use different patterns in their respective procedural builds, making it a new effort to decompose every Ant build a developer runs across.

This is why I say it matters whether you want to get a group involved. If you don't, don't bother learning Maven... the scripts you write in Ant are intuitively correct for your own use!

Maven also has top-notch support for dependencies, including transitive dependencies, which are harder to manage.

I converted a Flex/AS3 build to Maven, and not all the libraries were available in Maven yet. But they can easily be added to one's local repository and managed as if the developer had done it themselves.

http://www.sonatype.com/books/mvnref-book/reference/android-dev.html is the doc for the Android plugin. If Maven seems like something you're interested in, the concept of a plugin is something you'll need to understand first, but essentially it's like a workflow engine task. Maven always executes the same workflow for every build, just with different tasks (plugins configured for a specific code transform) attached at various points on the workflow. This is why Maven builds are so easy to look at and understand -- once one understands the workflow steps, it's easy to see how a build is unique, just by looking at what plugins are attached where.

scottferg commented 13 years ago

Interesting, thanks for the writeup! Think I'll play with this a bit :)