I had shared a basic understanding of maven sometime back.
Here I will try to get into some more details.
As mentioned earlier we need a pom file for any maven project. POM stands for Project Object Model. It contains configuration details for the project.
To start with we provide basic info such as
group id: shows project group, say finance
artifact id: within group we will have a unique project name as artifact id say payroll
version: It is the release version e.g. 1.0 or 2.1.2 etc.
repositories: where all the jars, plugins and other artifacts are stored and used by maven.
Type of repositories
Local Repository: A folder on local machine where all the dependencies are stored. Maven by default creates the repo in user/home directory, this path can be overridden by “localrepository” tag in POM.
Central repository: This is by default provided by maven, and has most of the common jars. No need for a separate configuration for this.
Remote Repository: Developer has an option to provide a repository explicitly, so if a give dependency is not found in central repository, it will be fetched from remote repository.
Dependencies: All the Jar files on which project is dependent and will be downloaded before the build.