Apache Maven Beginner to Guru

Master Apache Maven to Build and Deploy Your Java and Spring Boot Applications
Apache Maven Beginner to Guru
File Size :
13.07 GB
Total length :
16h 52m



John Thompson • 433,000+ Enrollments Worldwide


Last update

Last updated 8/2022



Apache Maven Beginner to Guru

What you’ll learn

Learn Apache Maven, the most popular Java build tool!
Create Apache Maven Projects from scratch
See how to configure Apache Maven Plugins for Real World use cases
Use Apache Maven to build, test, package, and deploy your Java application
See how to create multi-module Apache Maven projects
Configure Maven Plugins to work within Maven Build Lifecycles
Deploy your Java project to Maven Central or other Maven repositories
Leverage Apache Maven’s Convention over Configuration

Apache Maven Beginner to Guru


Must have knowledge of Java programming. (Java 1.8 or higher is ideal)
Computer capable of supporting Java 11 development with internet access
Fundamental XML knowledge helpful


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 LifecyclesUse Maven to build and package Java projectsSee how to use Maven with popular alternative JVM languages, including Groovy, Kotlin, and ScalaConfigure Maven to run your unit and integration tests written in JUnit 3, JUnit 4, JUnit 5, TestNG, and SpockGenerate source code from XML and JSON SchemasLeverage annotation processing at compile time for Project Lombok and MapstructLearn in depth about the Apache Maven plugin system and see how plugins are used in the build lifecycleBuild Spring Boot applications with Apache MavenImprove your code quality with code coverage and spot bugs reportsUnlock valuable capabilities of the Spring Boot Maven plugin!Deploy project artifacts to Maven repositories Develop multi-module Maven projectsLearn how to use Maven Build ProfilesPerform Releases using the Maven Release PluginHow to use Maven for Enterprise Dependency management by using BOMsAnd much more!This is course is for the modern Java developer. The entire course has been developed using Java 11.Course ExtrasAll 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!


Section 1: Apache Maven Introduction

Lecture 1 Welcome to Apache Maven – Beginner to Guru course

Lecture 2 Meet your Instructor

Lecture 3 Getting the Most Out of this Course

Lecture 4 Why Use Apache Maven?

Lecture 5 Slack Group for Apache Maven: Beginner to Guru

Lecture 6 Is your IDE Free Like a Puppy?

Lecture 7 Free 120 Day IntelliJ IDEA Trial!

Lecture 8 GitHub Workflow

Section 2: Getting Started

Lecture 9 Introduction

Lecture 10 System Requirements

Lecture 11 Maven Installation

Lecture 12 Environment Verification

Lecture 13 Conclusion

Section 3: Compiling Java

Lecture 14 Introduction

Lecture 15 Review of Java Compile and Packaging

Lecture 16 Hello World Java Command Line

Lecture 17 Creating Java jar files from Command Line

Lecture 18 Using 3rd Party Jars with Command Line Java

Lecture 19 Conclusion

Section 4: Getting Started with Maven

Lecture 20 Introduction

Lecture 21 Compiling and Packaging with Maven

Lecture 22 Including Dependencies with Maven

Lecture 23 Creating a new Maven Project with IntelliJ

Lecture 24 Assignment – Add StringUtils Dep to Project

Lecture 25 Assignment Review – Add StringUtils Dep to Project

Lecture 26 Conclusion

Section 5: Maven Basics

Lecture 27 Introduction

Lecture 28 Maven Coordinates

Lecture 29 Maven Repositories

Lecture 30 Maven Wagon

Lecture 31 Maven Project Object Model

Lecture 32 Maven Dependencies

Lecture 33 Maven Standard Directory Layout

Lecture 34 Maven Build Lifecycles

Lecture 35 Maven Wrapper

Lecture 36 Maven Archetypes

Lecture 37 Conclusion

Section 6: Common Maven Plugins

Lecture 38 Introduction

Lecture 39 Overview Maven Lifecycle Plugins

Lecture 40 Maven Clean Plugin

Lecture 41 Maven Compiler Plugin

Lecture 42 Maven Resources Plugin

Lecture 43 Maven Surefire Plugin

Lecture 44 Maven Jar Plugin

Lecture 45 Maven Deploy Plugin

Lecture 46 Maven Site Plugin

Lecture 47 Maven and Source Control

Lecture 48 Other Maven Plugins

Lecture 49 Common Maven Commands and CheatSheet

Lecture 50 Conclusion

Section 7: Generating Source with Maven

Lecture 51 Introduction

Lecture 52 XSD to Java with Maven

Lecture 53 Assignment – Clean JAXB Project Automatically

Lecture 54 Assignment Review – Clean JAXB Project Automatically

Lecture 55 Using Maven to Generate Java Classes from JSON Schema

Lecture 56 Challenge – Create Project Lombok Project with Maven

Lecture 57 Generating Java Classes with Project Lombok and Maven

Lecture 58 Challenge – Create MapStruct Project with Maven

Lecture 59 Generating Java Classes with MapStruct and Maven

Lecture 60 Conclusion

Section 8: Alternate JVM Languages

Lecture 61 Introduction

Lecture 62 Overview of Alternate JVM Languages with Maven

Lecture 63 Compile Groovy with Maven

Lecture 64 Compile Kotlin with Maven

Lecture 65 Compile Scala with Maven

Lecture 66 Conclusion

Section 9: Testing with Maven

Lecture 67 Introduction

Lecture 68 Overview of Testing with Maven

Lecture 69 Using Maven Surefire for POJO Unit Tests

Lecture 70 Using Maven Surefire for JUnit 4 Unit Tests

Lecture 71 Using Maven Surefire for JUnit 5 Unit Tests

Lecture 72 Using Maven Surefire for JUnit 4 and JUnit 5 Tests

Lecture 73 Assignment: Add Groovy and JUnit 4 Support to Maven Project

Lecture 74 Assignment Review

Lecture 75 Using Maven Surefire for Spock Tests

Lecture 76 Challenge: Use JUnit 5 with Spock

Lecture 77 Using Spock with JUnit 5

Lecture 78 Using Maven Surefire for TestNG Unit Tests

Lecture 79 Generating Test Reports with Maven

Lecture 80 Running Integration Tests with Maven Failsafe

Lecture 81 Code Coverage with Jacoco

Lecture 82 Maven Spot Bugs Report

Lecture 83 Setting Maven Version in IntelliJ

Lecture 84 Assignment – Fix Broken Maven Project

Lecture 85 Assignment Review

Lecture 86 Skipping Unit and Integration Tests in Maven

Lecture 87 Conclusion

Section 10: Multi-Module Projects

Lecture 88 Introduction

Lecture 89 Overview of Multi Module Projects

Lecture 90 Creating Parent Project

Lecture 91 Create Project Module for Entities

Lecture 92 Using IntelliJ to Create New Maven Module

Lecture 93 Assignment Add Module for API Model Using XML

Lecture 94 Assignment Review Adding Project Module for API Model

Lecture 95 Maven Dependencies Between Modules

Lecture 96 Assignment Add Module for MapStruct Converters

Lecture 97 Assignment Review – Add MapStruct Module

Lecture 98 Setting Version via Maven Property

Lecture 99 Maven Flatten Plugin

Lecture 100 Maven Enforcer Plugin

Lecture 101 Assignment – Repair Multi-Module Maven Project

Lecture 102 Assignment Review – Repair Multi-Module Maven Project

Lecture 103 Overview of Maven Bill of Materials (BOM)

Lecture 104 Example of Maven BOM

Lecture 105 Conclusion

Section 11: Apache Maven for Spring Boot

Lecture 106 Introduction

Lecture 107 Spring Boot Parent POM and BOM

Lecture 108 Creating Project with Spring Initializr

Lecture 109 Spring Boot Starter Dependencies

Lecture 110 Spring Boot Fat JAR

Lecture 111 Running Spring Boot from Maven

Lecture 112 Spring Boot Integration Tests with Maven Failsafe

Lecture 113 Generate Build Information with Maven

Lecture 114 Add Git Information to Maven Build

Lecture 115 Multi-Module Spring Boot Projects

Lecture 116 Assignment – Create Spring Boot Multi-Module Project

Lecture 117 Assignment Review – Create Spring Boot Multi-Module Project

Lecture 118 Conclusion

Section 12: Maven Repositories

Lecture 119 Introduction to Maven Repositories

Lecture 120 Configuration of Maven Repositories

Lecture 121 Configure Mirror Repository in settings.xml

Lecture 122 Common Public Maven Repositories

Lecture 123 Using JBoss Repository

Lecture 124 Introduction to Maven Settings

Lecture 125 Assignment – Add JBoss Repository to Settings XML

Lecture 126 Assignment Review – Add JBoss Repository to Settings XML

Lecture 127 Using Spring Repositories

Lecture 128 Manually Installing Dependencies

Lecture 129 Overview Using Oracle Maven Repository

Lecture 130 Configuring Oracle Maven Repository

Lecture 131 Configure Maven Master Password

Lecture 132 Configuring Maven for Oracle Maven Repository

Lecture 133 Conclusion

Section 13: Deploying to Maven Projects to Packagecloud

Lecture 134 Introduction

Lecture 135 Packagecloud Account Creation

Lecture 136 Packagecloud Free Account

Lecture 137 Create Packagecloud Repository

Lecture 138 Packagecloud Maven Configuration

Lecture 139 Assignment – Deploy Release to Packagecloud

Lecture 140 Assignment Review

Lecture 141 Conclusion

Section 14: Deploying Apache Maven Projects to Nexus

Lecture 142 Introduction

Lecture 143 Nexus Repository Manager Overview

Lecture 144 Installing Nexus

Lecture 145 Introduction to Nexus

Lecture 146 Create Snapshot Repository

Lecture 147 Assignment – Create Release Repository

Lecture 148 Assignment Review

Lecture 149 Nexus Repository Groups

Lecture 150 Conclusion

Section 15: Maven Build Profiles

Lecture 151 Introduction

Lecture 152 Overview of Maven Build Profiles

Lecture 153 Creating Packagecloud Build Profile

Lecture 154 Assignment – Create Nexus Build Profile

Lecture 155 Assignment Review

Lecture 156 Maven Profile Command Line Usage

Lecture 157 Setting Properties in Profiles

Lecture 158 Conclusion

Section 16: Maven Release Plugin

Lecture 159 Introduction

Lecture 160 Maven Release Process Overview

Lecture 161 Maven SCM Configuration

Lecture 162 Maven Release Plugin Configuration

Lecture 163 Maven Release Prepare and Perform

Lecture 164 Maven Release Rollback

Lecture 165 Maven Release Example Error

Lecture 166 Maven Release Dry Run

Lecture 167 CircleCI Configuration

Lecture 168 CircleCI Deploy to Packagecloud

Lecture 169 CircleCI Release to Packagecloud

Lecture 170 Conclusion

Section 17: Maven in the Real World

Lecture 171 Introduction

Lecture 172 Overview of Projects

Lecture 173 Review Spring Cloud Contract

Lecture 174 Review Spring Cloud Contract for OpenAPI

Lecture 175 Spring Cloud Contract Fraud Example in OpenAPI

Lecture 176 Example Payor Service

Lecture 177 Resolving Dependency Conflicts

Lecture 178 Development with Snapshot Versions

Lecture 179 Deployment to Maven Central

Lecture 180 Upgrading Dependent Projects to Release Version

Section 18: Enterprise Dependency Management

Lecture 181 Introduction

Lecture 182 Maven Bill of Materials

Lecture 183 Maven BOM Creation

Lecture 184 Maven BOM Setting Common Properties

Lecture 185 Maven BOM Dependency Management

Lecture 186 Maven BOM Common Dependencies

Lecture 187 Maven BOM Common Build Plugins

Lecture 188 Maven Enforcer Build Plugin

Lecture 189 Beer Service Parent BOM Configuration

Lecture 190 Assignment – Update Services to use BOM

Lecture 191 Assignment Review

Lecture 192 Using Released BOMs

Lecture 193 Assignment – Update Services to use Release BOM

Lecture 194 Assignment Review

Lecture 195 IntelliJ Workspace Tips and Tricks

Lecture 196 Conclusion

Section 19: Appendix A: Using GitHub

Lecture 197 Git and GitHub Basics – Start here!

Lecture 198 GitHub Workflow

Java Developers seeking to master Apache Maven,DevOps Engineers who wish to expand their build and deployment skills,Technical Managers wishing to understand the capabilities of Maven better,QA Engineers interested in software quality

Course Information:

Udemy | English | 16h 52m | 13.07 GB
Created by: John Thompson • 433,000+ Enrollments Worldwide

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top