21 Maven Interview Questions Answers for Java Developers
1. What is Maven?
Answer: Maven is a project management
tool. It provides the developer a complete build lifecycle framework. More than a project management, its commonly used as build tool to build packages like JAR and WAR and even tar file to deploy Java applications.
2. What are the three build lifecycle of Maven?
Answer:
- Clean: Cleans up artifacts that are created by prior builds
- Default (build): Used to create the application
- Site: For the project generates site documentation
Here is a nice diagram which explains Maven build and release cycle:
3. What are Maven Plugins used for?
Answer: Maven
plugins are used to
- Create a jar file
- Create war file
- Compile code files
- Unit testing of code
- Documenting projects
- Reporting
4. What is a Maven Repository?
Answer: Maven
repositories refer to the directories of packaged JAR files that contain
metadata. The metadata refers to the POM files relevant to each project.
This metadata is what allows Maven to download dependencies. There are three
types of repositories:
- Local Repository
- Remote Repository
- Central Repository
5. What are the phases of a Site Life Cycle?
Answer: The phases of a site life cycle include:
- Pre-site
- Site
- Post-site
- Site-deploy
6. What is Maven’s order of inheritance?
Answer:
The order of inheritance in Maven is:
- Settings
- CLI parameters
- Parent POM
- Project POM
7. What is a Build Profile?
Answer: Build profiles
refer to the set of configuration values required to build a project using
different configurations. Different build profiles are added to the POM
files while enabling different builds. A build profile helps in customizing
build for different environments.
8. What are the different types of Build Profiles?
Answer: There are three different types of build profiles:
- Per Project - defined in pom.xml
- Per - User - defined in Maven settings.xml
- Global - defined in Maven global settings.xml
9. What is POM in Maven?
Answer: POM in Maven
stands for Project Object Model. POM is an XML file in Maven and the
fundamental unit that contains crucial information regarding the project and
other related configuration details needed to run the project.
10. What are the minimum required elements for POM?
Answer: The minimum required elements for POM are:
- project root
- modelVersion – should be 4.0.0
- groupId – project’s group id
- artifactId – artifact (project) id
- version – version of the artifact
11. What are the different aspects that the Maven tool manages?
Answer: Maven manages the following aspects of project
management:
- Building
- Reporting
- Documentation
- Distribution
- Dependencies
- SCMs
- Releases
- Mailing lists
12. Explain the different types of Maven repositories
Answer: There are three main types of Maven repositories. They are as follows:
- The local repository: A local repository is a folder that is present in your current system/machine. Local repositories are created when you run Maven commands for the first time. The dependencies of your current project can be found in the local Maven repository.
- The central repository: This repository contains a bunch of libraries and dependencies provided by the Maven community. If Maven doesn’t locate a certain dependency in the local repository, it begins searching in the central repository.
- The Remote Repository: If Maven is unable to locate a dependency in the central repository, it halts the build process and returns an error message. To avoid this, the provision for a remote repository has been made. A remote repository is a collection of custom libraries and other dependencies specific to the project.
13. What are the different dependency scopes in Maven?
Answer: Dependency scopes include project dependencies that are in line with the
current, active stage of the build process. The different Dependency scopes
in Maven are:
- Compile: This scope specifies that the current dependency is available in the classpath of the current project.
- Provided: This scope specifies that the web server will provide the dependency during runtime.
- Runtime: This particular scope indicates that the dependency isn’t needed during compile time and is only needed during execution.
- Test: This scope indicates that the dependency is available limitedly during the test compilation phase.
- System: This scope specifies that the system path for the given build phase needs to be provided.
- Import: This scope indicates that the given POM should be replaced with congruent dependencies in the POM’s <DependencyManagement> section.
14. What are the steps to install Maven on Ubuntu?
Answer: Installing Maven on Ubuntu is not very different from installing Maven on Windows as its a Java app and all you need is JAR files and a couple of environment variable to work with Maven on Ubuntu. Anyway, here are exact steps to install Maven on Ubuntu
- The primary step is to install Java.
- Then, download Maven.
- Configure environment variables JAVA_HOME, M3_HOME, MAVEN_HOME, and PATH.
- Lastly, verify the Maven installation by checking its version.
15. What are the phases of a Clean Life Cycle?
Answer: The phases of a clean life cycle include:
- Pre-clean
- Clean
- Post-clean
16. What is a ‘Snapshot’ in Maven?
Answer:
Snapshot refers to the version available in the Maven remote repository. It
signals the latest development copy. Maven inspects for a new version of
Snapshot in the remote repository, for every new build.
17. What is the reason for using an Optional Dependency?
Answer:
- Optional dependencies are used to decrease the transitive burden of some libraries.
- These dependencies are used when it is not feasible to divide a project into sub-modules.
- Some dependencies are only used for a specific feature in the project, and if that feature is not there, then that dependency will not be used.
18. What are the steps to install Maven on Windows? (tutorial)
Answer: To install Maven on Windows, observe the following steps:
- Download Maven first, and then extract it.
- In the environment variable, add JAVA_HOME, and MAVEN_HOME.
- Then, add the environment path in the Maven variable.
- Lastly, verify the Maven installation by checking its version. The command mvn -version will display the version installed in the system
19. How does Maven Architecture work?
Answer:
Maven architecture works in three steps, which are as follows:
- The first step is to read the pom.xml file.
- Then, it downloads the dependencies defined in pom.xml into the local repository from the central repository.
- Lastly, it creates and generates a report according to the requirements, and executes life cycles, phases, goals, plugins, etc.
Here is a nice diagram which illustrate Maven architecture and explains how Maven works in general:
20. How can a Maven Build Profile be activated?
Answer: A Maven build profile may be activated in the following ways:
- Explicitly using command console input.
- Through Maven settings.
- Based on environment variables.
- OS Settings.
- Present/missing files.
21. What is difference between Maven, ANT, and Jenkins? (answer)
This is another common question asked to Java programmers. While ANT is a build tool like Maven it doesn't offer dependency management and there is no repository concept on that. Jenkins is for automatic build creation, testing, and pipeline which can even release in cloud. I have explained the difference in detailed, here you can also checkout.
That's all about the Maven Interview Questions with Answer for 1 to 3 years experienced Java developers. Hope you have mastered the questions with answers and now you are ready for the interview any time. Everything will go your way because you are already more than ready. Keep on preparing and everything will be set. I will you nothing but success in your forthcoming interview.
Other Maven articles you may like to explore
- Difference between Maven, ANT and Jenkins? (answer)
- Difference between mvn install, mvn release, and mvn deploy? (answer)
- Maven or Gradle? which one to learn (maven vs gradle)
- Top 5 Maven Courses for Beginners (maven courses)
- Top 10 Maven Plugins Every Java developer should know (see here)
- 3 Maven Eclipse tips to learn (maven tips)
- How to install Maven on Windows 10? (tutorial)
- How to increase heap size of Maven? (steps)
- Why Java developer should learn Maven or Gradle (tutorial)
- 9 Maven Concepts Every Java programmer should learn (maven concepts)
- Free Maven books for Java developers (see here)
If you have any other Maven questions feel free to share. If you are looking for answers for any of your Maven questions then also feel free to share.
P. S. - If you want to learn Maven in depth and looking for resources then you can also checkout these best online courses to learn Maven for Java programmers. This list contains best Maven courses from Udemy, Pluralsight, and Coursera, three popular online learning platforms.
No comments:
Post a Comment