Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Duplicate
-
None
-
None
-
None
-
None
Description
I want to propose this idea as gently as possible, because I know there's a lot of passion around build tools these days.
There should at least be some discussion around the merits of Maven vs. Ant/IVY.
If there's a lot of interest in switching Hive to Maven, I would be willing to volunteer some time to put together a patch.
The reasons to potentially look at Maven for the build system include:
- Simplified build scripts/definitions
- Getting features like publishing test artifacts "automagically"
- Very good IDE integration using M2 eclipse
- IDE integration also supports working on multiple projects at the same time which may have dependencies on eachother.
- If you absolutely must you can use the maven-antrun-plugin
- Despite the fact that people have trouble thinking in maven at first, it becomes easy to work with once you know it
- This supports knowledge reuse
Reasons for Ant/Ivy
- There's more flexibility
- The system's imperative style is familiar to all programmers, regardless of their background in the tool
Reasons not to go Maven
- The build system is hard to learn for those not familiar with Maven due to its unusual perspective on projects as objects
- There's less flexibility
- If you wind up dropping down to the maven ant plugin a lot everything will be a big mess
Reasons not to continue Ant/Ivy
- Despite the fact that the programming paradigm is familiar, the structure of Ant scripts is not very standardized and must be re-learned on pretty much every project
- Ant/Ivy doesn't emphasize reuse very well
- There's a constant need to continue long-running development cycles to add desirable features to build scripts which would be simple using other build systems