Maven: is basically a build tool that helps developers a complete build lifecycle. Maven provided a solution to build multiple project, deploy those project and manage multiple jars with in a single structured environment.
The Maven provide a structure to a project for different build which can be reusable, structured and easy manageable. Maven is a project management tool which is basically based on POM (Project Object Model),which helps in maintaining a build, dependency of multiple jars and documentation, it is advanced than ANT (which is again a build tool).
Problem when not using maven
- Multiple jar management: In a project there are multiple jars that are used for different work or different activity, searching every jar, downloading and building it to every project becomes a huge task.
- Building and deployment: the build related task for ex :build report, execution of junit methods and library are tough and deployment is not easy manageable.
- Project structure: Correct structure must be initiated at initial level, if project structure is not well defined then the project will not be executable.
Maven helps in managing below:
- Builds
- Documentation
- Reporting
- Dependencies
- Releases
Maven Central Repository:
Maven has its central repository https://mvnrepository.com/, when the dependencies is been defined in pom.xml, maven first looks all its jars in local user at .M2 folder if the jars are not available in .M2 folder it downloads all the jars from the central repository, where all the jars are available for download.