
Install and set up Maven across Windows, macOS, and Linux by installing the Java JDK and adding Maven to your system path, establishing Maven as the course cornerstone.
Learn the system requirements to run Apache Maven, including hardware (8 gb memory, 250 gb disk, broadband), Java 11 JDK baseline, and IDE options like IntelliJ, Eclipse, and NetBeans.
Verify your development setup by confirming Java 11 or higher, installing the JDK, and using Maven 3.6.0 or higher to ensure compatibility with JUnit 5.
Explore a classic hello world in Java using a text editor, javac and java, and see how Maven automates compiling and packaging.
Learn how to use a third‑party jar with command line java, manage the classpath, and see how maven automates dependency management for multiple libraries.
Wrap up this section by reflecting on compiling Java from the command line, contrasting with modern IDEs or build tools, and previewing hands-on Maven in the next section.
Add the commons-lang3 dependency to the pom, enable IntelliJ auto-import, and use StringUtils.capitalize to show hello world capitalized on the string-utils branch.
Explore Maven basics, terminology, and how Maven works through core concepts. Review downloadable pdfs, establish a terminology baseline, and preview Maven internals and the broader ecosystem.
Explore Maven Wagon, a unified transport API for moving artifacts to and from Maven repositories with providers like HTTP, file, FTP, SSH, WebDAV, and SCM.
Explore Maven dependencies, including transitive and cyclic dependencies, dependency management, mediation, and scopes (compile, provided, runtime, test, system), plus practical tips with dependency:tree.
Discover the Maven standard directory layout, including src/main and src/test with Java and resources, enabling consistent build paths and integration testing across Java projects.
Explore Maven build lifecycles, phases, and plugin goals, including clean, default, and site lifecycles, and see how plugins bind to phases to execute builds.
Learn how the maven wrapper turns a project into a portable build by bundling a script around mvn, enabling version control, cross-platform execution, and easy version overrides.
Explore the Maven lifecycle plugins, including clean, compiler, resources, Surefire, jar, deploy, and site, plus Wagon, run, stage, and effective site concepts for building and deploying Java projects.
Explore the maven clean plugin and its effect on the target directory during packaging. Learn to hook clean into the default build lifecycle with mvn clean package.
Explore the Maven resources plugin, learning how to copy and manage non-class files from src/main/resources (and test/resources), including filtering, encoding, and multiple resource directories for web assets.
Explore Maven Surefire plugin and how it runs tests from the test directory with JUnit, TestNG, Cucumber, and POJO tests. See how it generates reports and works with Maven goals.
Explore the Apache Maven deploy plugin, publishing built artifacts to a remote Maven repository via distributionManagement, with settings for authentication and the deploy phase coordinating the full build lifecycle.
Learn how the maven site plugin generates a project website from content in markdown, apt, fml, or xhtml, and how to fix version conflicts by upgrading to site plugin 3.7.1.
Create a MapStruct Maven project to map between User and UserCommand with annotation processing. Implement bidirectional mappings for form binding and persistence.
Set up a maven project with java 11, integrate MapStruct to generate mapper implementations for converting user and user command objects, by configuring the maven compiler plugin and annotation processor.
Conclude the Maven course by outlining practical tools for generating source code within Maven, including Project Lombok and MapStruct, and comparing XML schemas with JSON approaches using XSDs.
Explore how Maven builds alternate JVM languages, Groovy, Kotlin, and Scala, by compiling to Java bytecode, managing plugins during the compile phase, and ensuring interoperability in a single jar.
Learn to set up and execute unit and integration tests in Maven using the Surefire and Failsafe plugins, with out-of-the-box support for JUnit 3, 4, and 5, TestNG, and Spock.
Explore testing with Maven by configuring Surefire and Failsafe for unit and integration tests using POJOs, JUnit 4/5, TestNG, and test-reporting and code coverage tooling.
Review the assignment by integrating groovy support and JUnit 4 into a baseline Maven project, configure the maven-compiler-plugin with groovy-eclipse-compiler, add groovy-all and JUnit dependencies, and create a JUnit test.
Configure a Spock project to run on JUnit 5 by adding junit-jupiter-api, junit-jupiter-engine, and the vintage engine, ensuring Groovy-based Spock yields JUnit 4 bytecode.
Learn how to configure Maven Surefire for TestNG unit tests by adding the TestNG dependency, using the test scope, and running tests in IntelliJ with the SureFire report plugin.
Install and configure the maven-surefire-report-plugin to generate surefire reports within the site build lifecycle, override the maven-site-plugin to 3.7.1, and review tests in CI.
Enable the SpotBugs Maven plugin to generate code quality reports from your project, configure it in the POM, run site and verify lifecycles, and review SpotBugs findings alongside integration tests.
Fork the repository, clone it, and import as a Maven project in IntelliJ; fix pom, update junit version and plugins, run mvn clean install site, and push a pull request.
Learn how to skip unit and integration tests in maven using IntelliJ toggles and -DskipTests/-DskipITs, with Surefire and Failsafe behaviors.
Conclude the Maven testing module by highlighting that tests must pass to complete the build, and that Maven provides built-in test support with separate unit and integration tests.
Create a multi-module maven project with a parent pom and a jpa-entities module. Define a User entity with @Entity, @Data, and @Builder using hibernate-core and Lombok, then install.
Add a converters module, configure MapStruct in the child module, generate a UserMapper, and wire the generated mapper into the web-app with explicit dependencies.
enforce java 11 and maven 3.5+ using the maven enforcer plugin, configure environment rules, and fail builds that don't meet version requirements for consistent ci and local environments.
Repair a broken multi-module Maven project by fixing errors from a GitHub repository, then run mvn clean install from the project root to install to the local Maven repository.
Fix a broken multi-module maven project by repairing missing modules and restoring dependencies. Run mvn clean install to verify the build and resolve schema and code-generation issues across modules.
Refactor a multi-module Maven project to use a BOM in the parent POM, manage MapStruct and other dependencies via dependencyManagement, and externalize versions for easier maintenance.
Explore the versatility and power of Maven multi module projects, and use them responsibly to prevent build slowdowns from unnecessary interface implementation splits.
Apache Maven is the most popular Java build tool. Companies and Open Source communities around the world, consider Apache Maven the 'go-to' build tool for their Java projects.
In this course, you will learn to master Apache Maven. You will become a 'guru' using Apache Maven.
No previous experience with Apache Maven is required.
In just a few lessons, you will be building your first Apache Maven project!
In this course, you will:
Learn about the Maven Build Lifecycles
Use Maven to build and package Java projects
See how to use Maven with popular alternative JVM languages, including Groovy, Kotlin, and Scala
Configure Maven to run your unit and integration tests written in JUnit 3, JUnit 4, JUnit 5, TestNG, and Spock
Generate source code from XML and JSON Schemas
Leverage annotation processing at compile time for Project Lombok and Mapstruct
Learn in depth about the Apache Maven plugin system and see how plugins are used in the build lifecycle
Build Spring Boot applications with Apache Maven
Improve your code quality with code coverage and spot bugs reports
Unlock valuable capabilities of the Spring Boot Maven plugin!
Deploy project artifacts to Maven repositories
Develop multi-module Maven projects
Learn how to use Maven Build Profiles
Perform Releases using the Maven Release Plugin
How to use Maven for Enterprise Dependency management by using BOMs
And much more!
This is course is for the modern Java developer.
The entire course has been developed using Java 11.
Course Extras
All Source Code in GitHub - Get access to over a dozen GitHub repositories with valuable examples!
Slack Community - Join the instructor, teacher's assistants, and over 1,100 other students in a Slack Community exclusive to this course!
Free 120 Day IntelliJ Ultimate Trial - Students enrolling in the course can request a free 120 day trial for IntelliJ Ultimate (the most popular Java IDE!)
Closed Captioning / Subtitles - Closed captioning in english is available for all course videos!
PDF Downloads - All keynote presentations are available for you to download as PDFs.
Lifetime Access - When you purchase this course, you will receive lifetime access! You can login anytime from anywhere to access the course content.
Apache Maven is used by over 70% of Java organizations. Employers are seeking people with strong Maven skills.
Completing this course, you will be able to answer interview questions about Maven with confidence!
Even if you're already a Java developer using Apache Maven, this course will improve your Maven skills and show you new valuable best practices for your Java projects.
Enroll today!