Need advice about which tool to choose?Ask the StackShare community!
CMake vs Apache Maven: What are the differences?
What is CMake? *An open-source system that manages the build process *. It is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of the user's choice.
What is Apache Maven? Apache build manager for Java projects. Maven allows a project to build using its project object model (POM) and a set of plugins that are shared by all projects using Maven, providing a uniform build system. Once you familiarize yourself with how one Maven project builds you automatically know how all Maven projects build saving you immense amounts of time when trying to navigate many projects.
CMake and Apache Maven belong to "Java Build Tools" category of the tech stack.
Apache Maven is an open source tool with 1.74K GitHub stars and 1.28K GitHub forks. Here's a link to Apache Maven's open source repository on GitHub.
Zillow, Intuit, and Zalando are some of the popular companies that use Apache Maven, whereas CMake is used by alfaview, Koolicar, and Document Modelling. Apache Maven has a broader approval, being mentioned in 305 company stacks & 142 developers stacks; compared to CMake, which is listed in 6 company stacks and 3 developer stacks.
Pros of CMake
- Has package registry1
Pros of Apache Maven
- Dependency management137
- Necessary evil71
- I’d rather code my app, not my build60
- Publishing packaged artifacts48
- Convention over configuration43
- Modularisation18
- Consistency across builds11
- Prevents overengineering using scripting6
- Runs Tests4
- Lot of cool plugins4
- Extensible3
- Hard to customize2
- Runs on Linux2
- Runs on OS X1
- Slow incremental build1
- Inconsistent buillds1
- Undeterminisc1
- Good IDE tooling1
Sign up to add or upvote prosMake informed product decisions
Cons of CMake
Cons of Apache Maven
- Complex6
- Inconsistent buillds1
- Not many plugin-alternatives0