Maven Build Interview Questions

Maven Build Interview Questions and how to answer them in job interview to secure a job.

Q.1 What is Maven and how does it work?
Maven is primarily a project management tool that provides the developer a complete build lifecycle framework.

How it Works
When executing Maven commands, it will look for POM file in Maven; such that it will run the command on the resources described in the POM.q
Q.2 What are the activities handled by Maven?
The activities handled by Maven are -
1. Build
2. Documentation
3. Reporting
4. Dependencies
5. SCMs
6. Releases
7. Distribution
8. Mailing list
Q.3 What are the three build lifecycle of Maven?
The three build lifecycle of Maven are -
1. Clean: Cleans up artifacts that are created by prior builds
2. Default (build): Used to create the application
3. Site: For the project generates site documentation
Q.4 What is POM, in Maven?
In Maven, POM is abbreviated as Project Object Model which is referred as is the fundamental unit of work. This is an XML file which holds the information about the project and configuration details used to build a project by Maven.
Q.5 What do you understand by Maven artifact?
In general an artifact is a JAR file that gets arrayed to a Maven repository. Such that one or more artifacts a maven build produces such as compiled JAR and a sources JAR. Also each artifact includes a group ID, an artifact ID and a version string.
Q.6 What is a Maven Repository and define their types?
Maven repository is referred to as a location where all the project jars, library jars, plugins or any other particular project related artifacts are stored and be easily used by Maven.

Maven repository is of three types namely - local, central and remote.
Q.7 Why do we use Maven Plugins?
We use Maven Plugins because -
1. it creates a jar file
2. It creates war file
3. It compiles code files
4.Assists in unit testing of code
5.Assist in documenting projects
6. Assists in reporting
Q.8 What according to you is the dependency scope in Maven?
The dependency scope used in Maven are -

1. Compile: It is the default scope, and it indicates what dependency is available in the classpath of the project
2. Provided: It indicates that the dependency is provided by JDK or web server or container at runtime
3. Runtime: This tells that the dependency is not needed for compilation but is required during execution
4.Test: It says dependency is available only for the test compilation and execution phases
5. System: It indicates you have to provide the system path
6. Import: This indicates that the identified or specified POM should be replaced with the dependencies in that POM’s section
Q.9 How are profiles specified in Maven?
Profiles are specified in Maven by using a subset of the elements existing in the POM itself.
Q.10 How can you exclude dependency?
We can exclude dependency by using the exclusion element, dependency can be excluded
Q.11 Differentiate between Apache Ant and Maven?
Some of the differences between Apache Ant and Maven are -

1. Ant is a toolbox – Maven is a framework
2. Ant does not have formal conventions like project directory structure – Maven has conventions
3. Ant is procedural; you have to tell to compile, copy and compress – Maven is declarative ( information on what to make & how to build)
4. Ant does not have lifecycle; you have to add sequence of tasks manually – Maven has a lifecycle
5. Ant scripts are not reusable – Maven plugins are reusable
Q.12 What are the two setting files known as and what are their location, in Maven?
The setting files in Maven, are called settings.xml, and the two setting files are located at

1. Maven installation directory: $M2_Home/conf/settings.xml
2. User’s home directory: ${ user.home }/ .m2 / settings.xml
Q.13 What are the build phases in Maven?
Some of Build phases in Maven are -

1. Validate
2. Compile
3. Test
4. Package
5. Install
6. Deploy
Q.14 In Maven, what are the build, source and test source directory for POM ?
The build, source and test source directory for POM are

Build = Target
Source = src/main/java
Test = src/main/test
Q.15 Where can we find the class files when we compile a Maven project?
We can find the class files in the following directory

${basedir}/target/classes/.
Q.16 What would the “jar: jar” goal do in Maven?
jar will not recompile sources as it will just create a JAR from the target/classes directory considering that everything else has been done
Q.17 List the Maven’s order of inheritance.
List of maven’s order of inheritance is,

1. Parent Pom
2. Project Pom
3. Settings
4. CLI parameters
Q.18 What are the minimum required elements for POM ?
Minimum required elements for POM are - project root, modelVersion, groupID, artifactID and version
Q.19 How can you produce execution debug output or error messages?
In order to produce execution debug output we could call Maven with X parameter or e parameter
Q.20 What Is Pom and what Information does it contain?
POM is abbreviated for Project Object Model which is a basic Unit of work in Maven. POM is an XML file which perpetually resides within the base directory of the project as pom.xml. In order to create the project(s), it contains numerous configuration details and data concerning the project employed by maven
POM contains the some of the following configuration information −
project dependencies.
plugins.
goals.
build profiles.
project version.
developers.
mailing list.
Q.21 What does Maven encompasses?
Maven encompasses of project object model
Q.22 What is the difference between Maven and Maven 2?
Maven Lifecycle
Q.23 What is the minimum version of Java needed to run Maven?
1.4
Q.24 Where does profiles are configured in Maven?
profiles are configured in pom.xml
Q.25 What is Maven?
Maven is a build automation tool used for managing and building projects, primarily written in Java.
Q.26 What is the main purpose of Maven in software development?
Maven's main purpose is to automate the build process, manage dependencies, and streamline project management.
Q.27 What is a "POM" in Maven?
POM stands for "Project Object Model." It's an XML file that defines the configuration and dependencies of a project.
Q.28 How is a Maven project structured?
A Maven project typically follows a standard directory structure with folders like src, target, and pom.xml.
Q.29 What is a Maven artifact?
A Maven artifact is a deployable or reusable component, such as JARs, WARs, or plugins, managed by Maven.
Q.30 Explain the phases of a Maven build lifecycle.
Maven build lifecycles consist of phases like compile, test, package, install, and deploy, executed in sequence.
Q.31 What is a Maven repository?
A Maven repository is a centralized storage for project dependencies and artifacts, accessible during builds.
Q.32 How do you specify project dependencies in a Maven POM?
Dependencies are defined in the POM's section, including groupId, artifactId, and version.
Q.33 What is the purpose of the "Maven Central Repository"?
Maven Central is a public repository that hosts a vast collection of Java libraries and artifacts for easy access.
Q.34 How do you run a Maven build from the command line?
Run mvn followed by a goal or phase, e.g., mvn clean install, to execute a Maven build from the command line.
Q.35 What is the Maven repository's local and remote scope?
The local repository is on your machine, while the remote repository is a shared repository accessible over the internet.
Q.36 What is the purpose of the "Maven coordinates" (GAV)?
Maven coordinates (GroupId, ArtifactId, Version) uniquely identify a project's dependency in the repository.
Q.37 How do you skip tests during a Maven build?
Use the -DskipTests or -Dmaven.test.skip=true flag to skip test execution during a Maven build.
Q.38 Explain the difference between "clean" and "validate" phases in Maven.
clean removes previous build artifacts, while "validate" checks if the project's structure is correct.
Q.39 What is a Maven "plugin"?
A Maven plugin is a set of goals that extends Maven's functionality and can be configured in the POM.
Q.40 How do you specify the Java version for your Maven project?
Use the and properties in the POM to specify the Java version.
Q.41 What is a "SNAPSHOT" version in Maven?
A SNAPSHOT version indicates that a project is under active development and represents the latest, unstable code.
Q.42 Explain the purpose of the Maven "scope" for dependencies.
Maven scopes determine the visibility and accessibility of a dependency during different phases of the build.
Q.43 What are the different scope values in Maven?
Maven scopes include compile, provided, runtime, test, system, and import.
Q.44 How do you execute a specific Maven phase or goal?
Run mvn phase-name or mvn plugin:goal to execute a specific phase or goal in Maven.
Q.45 What is the purpose of the Maven "dependencyManagement" section in the POM?
It defines a central location to manage dependency versions and properties.
Q.46 Explain the concept of "transitive dependencies" in Maven.
Transitive dependencies are dependencies required by other dependencies, automatically resolved by Maven.
Q.47 How can you exclude transitive dependencies in Maven?
Use the element within a dependency to exclude specific transitive dependencies.
Q.48 What is the "parent POM" in Maven?
The parent POM is a POM file that defines common configurations and settings shared by child projects.
Q.49 How do you inherit settings from a parent POM in Maven?
Define the element in the child POM, specifying the parent's groupId, artifactId, and version.
Q.50 What is a "Maven archetype"?
A Maven archetype is a project template that defines the structure and initial configuration of a new project.
Q.51 How do you create a new Maven project from an archetype?
Use the mvn archetype:generate command and select an archetype to create a new Maven project.
Q.52 What is the "Maven Build Lifecycle"?
The Maven Build Lifecycle defines a sequence of phases and goals that define the build process, organized into stages.
Q.53 How can you skip a specific phase in the Maven build lifecycle?
Use the -Dmaven.test.skip=true flag or specify the -Dmaven.skip.phase=true property to skip a specific phase.
Q.54 What is a "Maven profile"?
A Maven profile allows you to customize build settings and configurations for different environments or purposes.
Q.55 How do you activate a Maven profile during a build?
Profiles are activated using the -P or --activate-profiles command-line option followed by the profile's name.
Q.56 Explain the purpose of the "Maven Shade Plugin."
The Shade Plugin creates an uber-JAR (a single JAR with all dependencies bundled) for easy distribution of projects.
Q.57 What is the "Maven Surefire Plugin" used for?
The Surefire Plugin runs unit tests in the Maven project and generates test reports.
Q.58 How do you specify the location of the "settings.xml" file in Maven?
Use the -s or --settings command-line option to specify the location of the settings.xml file.
Q.59 What is "dependency mediation" in Maven?
Dependency mediation is the process of selecting the appropriate version of a dependency when multiple versions are requested.
Q.60 What is the purpose of the "Maven Assembly Plugin"?
The Assembly Plugin creates binary and source distributions of a project, including all necessary files and dependencies.
Q.61 How do you define a custom repository in Maven?
You can define custom repositories in the section of your project's POM file.
Q.62 What is the purpose of the "Maven Javadoc Plugin"?
The Javadoc Plugin generates Javadoc documentation for your project's source code and packages it as a JAR file.
Q.63 Explain the purpose of the "Maven Release Plugin."
The Release Plugin automates the process of releasing a project, including versioning, tagging, and deployment.
Q.64 How can you exclude specific files from being included in the JAR or WAR built by Maven?
Use the element in the configuration of the Maven Assembly Plugin.
Q.65 What is the "Maven Dependency Plugin" used for?
The Dependency Plugin provides goals for analyzing and managing project dependencies, such as tree and list.
Q.66 How do you define a plugin in the Maven POM?
Define a plugin in the section of the POM, specifying the plugin's groupId, artifactId, and configuration.
Q.67 What is the "Maven Resources Plugin" used for?
The Resources Plugin copies resources (like property files) from the source to the target directory during the build process.
Q.68 How can you specify multiple profiles for activation in a Maven POM?
Separate profile names with commas when activating multiple profiles, e.g., -P profile1,profile2.
Q.69 What is the "Maven SCM Plugin" used for?
The SCM Plugin provides goals for interacting with source control systems, allowing for code checkouts and tagging.
Q.70 How can you specify multiple phases for execution in a single Maven command?
Separate phase names with spaces, e.g., mvn clean install.
Q.71 What is the purpose of the "Maven Site Plugin"?
The Site Plugin generates project documentation, reports, and websites from various sources like Javadocs and reports.
Q.72 How can you run a specific test class in Maven?
Use the -Dtest option followed by the name of the test class to execute only that specific test class.
Q.73 What is the "Maven Antrun Plugin" used for?
The Antrun Plugin allows you to run Apache Ant tasks during the Maven build lifecycle, integrating Ant with Maven.
Q.74 How do you specify the version of a plugin in a Maven POM?
Define the plugin version within the section of the POM, specifying groupId, artifactId, and version.
Q.75 What is the "Maven Enforcer Plugin" used for?
The Enforcer Plugin enforces rules and policies on Maven builds, such as dependency versions or custom rules.
Q.76 How do you create a custom Maven archetype for your project?
You can create a custom archetype by defining its structure and configuration in an archetype project and then installing it.
Q.77 What is the purpose of the "Maven Checkstyle Plugin"?
The Checkstyle Plugin enforces code style and coding standards by checking source code against defined rules.
Q.78 How can you define properties in a Maven POM file?
Define properties in the section of the POM, allowing for reusability and easier configuration.
Q.79 What is the "Maven Compiler Plugin" used for?
The Compiler Plugin compiles source code and supports specifying the Java version, compiler options, and more.
Q.80 How do you pass parameters to a Maven plugin in the POM?
You can pass parameters to a plugin in the section of the plugin's definition in the POM.
Q.81 What is the purpose of the "Maven Install Plugin"?
The Install Plugin installs the project's artifacts into the local repository, making them available for other projects.
Q.82 How do you execute a Maven goal on a specific module within a multi-module project?
Use the -pl or --projects option followed by the module's name when running the goal.
Q.83 What is the "Maven Clean Plugin" used for?
The Clean Plugin removes build artifacts and temporary files from the project, preparing it for a fresh build.
Q.84 What is "Maven version control" and how is it managed?
Maven version control tracks and resolves project dependencies, ensuring consistent builds with specified versions.
Q.85 How do you exclude a plugin from running in a Maven build?
You can disable a plugin's execution by using the section within the plugin configuration and setting its phase to an empty value.
Q.86 What is the "Maven Failsafe Plugin" used for?
The Failsafe Plugin is used for integration tests and executes tests with names matching the "IT" pattern by default.
Q.87 What is the purpose of the "Maven Site Lifecycle"?
The Site Lifecycle generates project documentation, reports, and websites using the Maven Site Plugin and related plugins.
Q.88 How do you specify the scope of a plugin in a Maven POM?
You can specify the scope of a plugin by including it within the section of the POM.
Q.89 What is the "Maven Shade Plugin" used for?
The Shade Plugin creates an uber-JAR (a single JAR with all dependencies bundled) for easy distribution of projects.
Q.90 How do you skip the tests during a Maven build and why might you do this?
You can skip tests using the -DskipTests flag to speed up the build process when you don't need to run tests.
Q.91 How do you activate a specific profile in a Maven settings.xml file?
You can activate a profile in the settings.xml file by including the profile's within the section.
Q.92 What is the "Maven Assembly Plugin" used for?
The Assembly Plugin creates binary and source distributions of a project, including all necessary files and dependencies.
Q.93 What is the purpose of the "Maven SCM Plugin"?
The SCM Plugin provides goals for interacting with source control systems, allowing for code checkouts and tagging.
Q.94 How can you specify a different settings.xml file for a Maven build?
Use the -s or --settings command-line option followed by the path to the settings.xml file you want to use.
Q.95 How can you specify the location of the "settings.xml" file in Maven?
Use the -s or --settings command-line option to specify the location of the settings.xml file.
Q.96 What is the purpose of the "Maven Build Lifecycle"?
The Maven Build Lifecycle defines a sequence of phases and goals that define the build process, organized into stages.
Get Govt. Certified Take Test