In this tutorial, we have presented the Most Frequently Asked Maven Interview Questions and Answers for Beginners and Experienced Candidates:
As with all interviews, the candidates must prepare to answer the most commonly asked interview questions on Maven. This tutorial will definitely help you prepare for your upcoming interview.
Maven Interview Questions With Answers
Q #1) What do you mean by Maven?
Answer: Maven is a project management tool (introduced by Apache Software Foundation) that provides an entire framework for the build cycle. It is open-source and is mainly used for the project developed in Java.
Maven is driven by a project object model popularly known as POM. It is the central repository for all the dependencies. It maintains the same folder convention across organizations and can be easily integrated with continuous integration tools like Jenkins.
Besides, it takes care of the reporting and documentation of the project. It is developed in Java language.
Q #2) What are the features or advantages of Maven?
The features or advantages of Maven are as follows:
- Not required to manually add jars for the project. The updates to the project dependencies and transitive dependencies are carried out automatically by Maven.
- Maven maintains a uniform directory structure across the organization.
- Both the deployment and build activities are taken care by Maven.
- Maven is simple, easy to grasp, to set up and utilize in the projects as it is driven by the POM file.
- Rapidly expanding repository of Maven contains a large number of libraries that can be used for multiple projects at a time.
- Maven encourages the use of extensible code design.
Q #3) Name the aspects that are managed by Maven.
Answer: The aspects that are managed by Maven are documentation, builds, SCMs, releases, distribution, mailing lists, dependencies, and reporting.
Q #4) What is meant by Maven build lifecycle? Name these cycles.
Answer: A Maven build life cycle comprises of certain phases. It determines the order in which the Maven goals need to be performed. If a particular phase is to be accomplished, then all the previous phases prior to that particular phase need to be run successfully in sequence.
Maven build life cycles are listed below as the followings:
- Clean: Removes the artifact produced from the preceding build processes.
- Default: Deployment and build process is taken care of.
- Site: Project documentation is carried out in this cycle.
Q #5) What is a build tool responsible for?
Answer: Build tools are primarily responsible for producing the source code (provided the auto-generated code is utilized). It creates project documentation from the source code.
It compiles and packages the code in the form of JAR/ZIP file. Finally, places that code in the local, central, or remote repository.
Q #6) What do you mean by POM and what does it contain?
Answer: Project Object Model or pom forms the elementary part of the working of Maven. While performing a Maven goal or a task, the pom file residing in the present directory is searched and referred to collect information on the project.
It is basically an xml file. It contains configuration details like plugins, goals, developers, dependencies, profiles, versions, and mailing lists.
For example, to add excel dependencies in Selenium, we need to add the dependencies pasted below.
Q #7) What do you mean by a Maven Repository?
Answer: Maven repository is the location of a directory where all the related project artifacts, jars, libraries, plugins are kept and can be utilized by Maven easily.
Q #8) Explain the various types of Maven Repositories.
Answer: There are three types of Maven repositories.
- Local Repository: This is placed in our local machine generally in the .m2 directory. This is generated once we are able to execute a Maven command successfully. All the project dependencies reside here. Once Maven scans the pom file, it first searches for its dependencies in the local repository.
- Central Repository: This is supplied by Apache Maven. It contains most of the routinely used libraries. Once any of the dependencies are not found in the local repository, then Maven connects to a central repository.
- Remote Repository: Sometimes companies develop their own custom repository comprising of their project artifacts, jars, and libraries. This is a type of repository that remains private for use inside that organization.
Q #9) Explain Maven Artifact.
Answer: Maven artifact is known as a file (generally a jar) that is extended to the Maven repository. Maven build generates multiple artifacts comprising of source jar and compiled jar. GroupId, artifactId, and version together form an artifact and all of the three combined solely identifies it.
The below code snippet shows an example of the Maven artifact.
<dependency> <groupId> org.selenium </groupId> <artifactId> seleniumJava </artifactId> <version> 4.0.2 </version> </dependency>
Q #10) List down the various scopes of Maven Dependency.
The various scopes of Maven dependency include:
- Compile: This scope is required to build, test, and run the project and is available by default.
- Provided: This scope is needed to build and test the project and is available at runtime.
- Runtime: This scope is not required for compilation but needed for execution.
- Test: This scope is needed for compilation and running of the unit test cases.
- System: This scope cannot be taken from the remote repository and need to be placed in the local project path.
- Import: This scope is utilized when the dependencies are of pom type.
Q #11) What are the differences between Maven and Ant?
Answer: The differences between Maven and Ant are listed below:
|Maven is descriptive and most of the project information are defined in the pom file.||Ant is in form of procedure or method where all the instructions to be performed are given in order.|
|Maven follows a life cycle.||Ant does not follow any life cycle.|
|Maven is considered as a framework.||Ant is considered as a tool box.|
|Maven is a project management and build tool.||Ant is a tool used only for build process.|
|Maven plugins can be reused.||Ant scripts cannot be reused.|
|Maven follows a protocol for example, Maven projects follow a uniform directory structure across organization.||Ant does not follow any specific protocol.|
Q #12) What do you mean by Maven Archetype?
Answer: Maven archetype is basically a plugin assigned with the job of generating the project structure according to a particular skeleton or template.
The following command is used to create a project template:
mvn archetype: generate
Q #13) How to determine the version of Maven in our system?
Answer: To determine the version of Maven we are using in our system, we need to enter the below command in the console.
Q #14) What is known as SNAPSHOT in Maven?
Answer: Maven snapshot is that version which is still unreleased. Prior to the first release is completed, there is a 1.0-SNAPSHOT version. In the future, this version will emerge to be 1.0 version. It is called as the present development copy. Maven looks for the new SNAPSHOT version in the remote repository.
Q #15) How to mention profiles in Maven?
Answer: The profiles are mentioned in Maven with the help of a subset of elements present in the pom file.
Q #16) What are Maven Plugins?
Answer: Maven plugins are the basic component of a Maven framework. Each of the plugins has a specific task to be performed.
Maven generally performs the following functionalities:
- Generates jar files.
- Generates war files.
- Compiles the code.
- Executes unit testing of code.
- Generates documentation of the project.
- Generates customized reports.
Maven plugin gives a group of goals that can be run with the following command syntax:
Q #17) What are the different types of Maven Plugins?
The different types of Maven plugins are listed below:
- Building Plugins: These plugins are used at the time of build and are defined in the building element of the pom file.
- Reporting Plugins: These plugins are used at the time of site generation and are defined in the reporting element of the pom file.
Q #18) What does goal in Maven mean?
Answer: A collection of Maven goals constitute a phase. Each goal is defined for a particular job involved in project management and execution of the build.
Q #19) Name the build phases in Maven Build Lifecycle.
Answer: The build phases in Maven Build Lifecycle are listed down:
- Validate: Checks if all the preconditions information to trigger the build is obtained.
- Compile: Project source code is compiled.
- Test: The Source code that is compiled is tested with the unit test framework. In this phase, the code is not deployed or packaged.
- Package: Source code after compilation is packaged in the form of ZIP or JAR files.
- Integration- test: After the package is deployed in an environment, the integration test cases are executed.
- Verify: Examines to ensure that the package is correct and it meets all the required quality specifications.
- Install: Installation of packages into the local repository.
- Deploy: A specimen of the final package is made accessible to the remote repository for distribution among the other developers across projects.
Q #20) What is the location where Maven dependencies are downloaded?
Answer: The project artifacts, dependencies, and jars downloaded by Maven are placed in the local repository of Maven. The folder .m2 is by default the location for the local repository. This default location can be changed from the settings.xml file.
Q #21) Name the phases of the Maven Clean Lifecycle.
The phases of Maven Clean Lifecycle are listed below:
Q #22) What is the purpose of command mvn clean in Maven?
Answer: mvn clean aims to clean the project artifacts created by the previous Maven builds from the target directories. This is generally executed before initiating a new build process.
Q #23) What do you mean by Build profiles in Maven?
Answer: Build profile is a collection of configurations that helps to place a value or overrule the default values required for the build process in Maven.
We can design the build process for various environments like development, testing, and production. Profiles are described in the pom files with the help of <profiles> and is usually used to point to different environments.
Q #24) List down the types of Maven Build profiles.
The types of Maven Build profiles are listed below:
- Per-User: This is described in Maven settings.xml file.
- Per Project: This is described in pom.xml of the project.
- Global: This is described in the global Maven settings.xml file.
Q #25) What do you mean by Maven’s External Dependencies?
Answer: Once Maven reads through the pom file, it gets to know the list of dependencies for the project. It searches for these dependencies in Local, Central and Remote repositories. In case any of the dependency not found in any of the repositories, then Maven utilizes the external dependency.
Q #26) What are the parameters required to define External Dependency in Maven?
Answer: Maven external dependencies are described in the pom xml file just like other dependencies. The parameters required to define the external dependencies are groupid, artifactId, scope set to system and system path as per the project location (relative path).
Q #27) What is meant by Mojo in the terminology of Maven?
Answer: Mojo is referred to as Maven plain Old Java Object. A mojo is basically an executable goal to increase the features of Maven. A plugin is a distribution of one or multiple connected MOJOs.
Q #28) What is the job of the exclusion element in Maven?
Answer: In order to keep out any of the dependencies, the exclusion element is used in Maven.
Q #29) Why is it recommended to keep the external dependencies in the local repository rather than a remote repository in Maven?
Answer: It is recommended to keep the external dependencies in the local repository instead of remote in Maven because local repository consumes less space, are easily accessible and there is no need to take care of versioning for jars.
Q #30) How to perform a force update in Maven?
Answer: A forced update in Maven can be done with the following commands:
mvn clean install –U
-U is used for forcing a Maven update. However, the dependencies that are release based cannot be performed in this manner.
Q #31) Explain the error “You cannot have two plugin executions with the same ( or missing) elements” in Maven.
Answer: This error message comes in the situations where we have run a single plugin more than one time with the same id. We need to give a unique id for each execution.
We are sure that most of your doubts on Maven interview questions would have been resolved by now. We have explored a wide scope of questions that are commonly asked in interviews. Practice and learn well and you will be able to grasp them easily.
We hope you enjoyed the entire range of tutorials in this exclusive Maven Series. Work Hard and Wish you all success!!