Apache Maven: Beginner to Guru

Apache Maven: Beginner to Guru

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 198 lectures (16h 53m) | 13.07 GB

Master Apache Maven to Build and Deploy Your Java and Spring Boot Applications

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.

Table of Contents

Apache Maven Introduction
1 Welcome to Apache Maven Beginner to Guru course
2 Meet your Instructor
3 Getting the Most Out of this Course
4 Why Use Apache Maven
5 Slack Group for Apache Maven Beginner to Guru
6 Is your IDE Free Like a Puppy
7 Free 120 Day IntelliJ IDEA Trial
8 GitHub Workflow

Getting Started
9 Introduction
10 System Requirements
11 Maven Installation
12 Environment Verification
13 Conclusion

Compiling Java
14 Introduction
15 Review of Java Compile and Packaging
16 Hello World Java Command Line
17 Creating Java jar files from Command Line
18 Using 3rd Party Jars with Command Line Java
19 Conclusion

Getting Started with Maven
20 Introduction
21 Compiling and Packaging with Maven
22 Including Dependencies with Maven
23 Creating a new Maven Project with IntelliJ
24 Assignment Add StringUtils Dep to Project
25 Assignment Review Add StringUtils Dep to Project
26 Conclusion

Maven Basics
27 Introduction
28 Maven Coordinates
29 Maven Repositories
30 Maven Wagon
31 Maven Project Object Model
32 Maven Dependencies
33 Maven Standard Directory Layout
34 Maven Build Lifecycles
35 Maven Wrapper
36 Maven Archetypes
37 Conclusion

Common Maven Plugins
38 Introduction
39 Overview Maven Lifecycle Plugins
40 Maven Clean Plugin
41 Maven Compiler Plugin
42 Maven Resources Plugin
43 Maven Surefire Plugin
44 Maven Jar Plugin
45 Maven Deploy Plugin
46 Maven Site Plugin
47 Maven and Source Control
48 Other Maven Plugins
49 Common Maven Commands and CheatSheet
50 Conclusion

Generating Source with Maven
51 Introduction
52 XSD to Java with Maven
53 Assignment Clean JAXB Project Automatically
54 Assignment Review Clean JAXB Project Automatically
55 Using Maven to Generate Java Classes from JSON Schema
56 Challenge Create Project Lombok Project with Maven
57 Generating Java Classes with Project Lombok and Maven
58 Challenge Create MapStruct Project with Maven
59 Generating Java Classes with MapStruct and Maven
60 Conclusion

Alternate JVM Languages
61 Introduction
62 Overview of Alternate JVM Languages with Maven
63 Compile Groovy with Maven
64 Compile Kotlin with Maven
65 Compile Scala with Maven
66 Conclusion

Testing with Maven
67 Introduction
68 Overview of Testing with Maven
69 Using Maven Surefire for POJO Unit Tests
70 Using Maven Surefire for JUnit 4 Unit Tests
71 Using Maven Surefire for JUnit 5 Unit Tests
72 Using Maven Surefire for JUnit 4 and JUnit 5 Tests
73 Assignment Add Groovy and JUnit 4 Support to Maven Project
74 Assignment Review
75 Using Maven Surefire for Spock Tests
76 Challenge Use JUnit 5 with Spock
77 Using Spock with JUnit 5
78 Using Maven Surefire for TestNG Unit Tests
79 Generating Test Reports with Maven
80 Running Integration Tests with Maven Failsafe
81 Code Coverage with Jacoco
82 Maven Spot Bugs Report
83 Setting Maven Version in IntelliJ
84 Assignment Fix Broken Maven Project
85 Assignment Review
86 Skipping Unit and Integration Tests in Maven
87 Conclusion

MultiModule Projects
88 Introduction
89 Overview of Multi Module Projects
90 Creating Parent Project
91 Create Project Module for Entities
92 Using IntelliJ to Create New Maven Module
93 Assignment Add Module for API Model Using XML
94 Assignment Review Adding Project Module for API Model
95 Maven Dependencies Between Modules
96 Assignment Add Module for MapStruct Converters
97 Assignment Review Add MapStruct Module
98 Setting Version via Maven Property
99 Maven Flatten Plugin
100 Maven Enforcer Plugin
101 Assignment Repair MultiModule Maven Project
102 Assignment Review Repair MultiModule Maven Project
103 Overview of Maven Bill of Materials BOM
104 Example of Maven BOM
105 Conclusion

Apache Maven for Spring Boot
106 Introduction
107 Spring Boot Parent POM and BOM
108 Creating Project with Spring Initializr
109 Spring Boot Starter Dependencies
110 Spring Boot Fat JAR
111 Running Spring Boot from Maven
112 Spring Boot Integration Tests with Maven Failsafe
113 Generate Build Information with Maven
114 Add Git Information to Maven Build
115 MultiModule Spring Boot Projects
116 Assignment Create Spring Boot MultiModule Project
117 Assignment Review Create Spring Boot MultiModule Project
118 Conclusion

Maven Repositories
119 Introduction to Maven Repositories
120 Configuration of Maven Repositories
121 Configure Mirror Repository in settingsxml
122 Common Public Maven Repositories
123 Using JBoss Repository
124 Introduction to Maven Settings
125 Assignment Add JBoss Repository to Settings XML
126 Assignment Review Add JBoss Repository to Settings XML
127 Using Spring Repositories
128 Manually Installing Dependencies
129 Overview Using Oracle Maven Repository
130 Configuring Oracle Maven Repository
131 Configure Maven Master Password
132 Configuring Maven for Oracle Maven Repository
133 Conclusion

Deploying to Maven Projects to Packagecloud
134 Introduction
135 Packagecloud Account Creation
136 Packagecloud Free Account
137 Create Packagecloud Repository
138 Packagecloud Maven Configuration
139 Assignment Deploy Release to Packagecloud
140 Assignment Review
141 Conclusion

Deploying Apache Maven Projects to Nexus
142 Introduction
143 Nexus Repository Manager Overview
144 Installing Nexus
145 Introduction to Nexus
146 Create Snapshot Repository
147 Assignment Create Release Repository
148 Assignment Review
149 Nexus Repository Groups
150 Conclusion

Maven Build Profiles
151 Introduction
152 Overview of Maven Build Profiles
153 Creating Packagecloud Build Profile
154 Assignment Create Nexus Build Profile
155 Assignment Review
156 Maven Profile Command Line Usage
157 Setting Properties in Profiles
158 Conclusion

Maven Release Plugin
159 Introduction
160 Maven Release Process Overview
161 Maven SCM Configuration
162 Maven Release Plugin Configuration
163 Maven Release Prepare and Perform
164 Maven Release Rollback
165 Maven Release Example Error
166 Maven Release Dry Run
167 CircleCI Configuration
168 CircleCI Deploy to Packagecloud
169 CircleCI Release to Packagecloud
170 Conclusion

Maven in the Real World
171 Introduction
172 Overview of Projects
173 Review Spring Cloud Contract
174 Review Spring Cloud Contract for OpenAPI
175 Spring Cloud Contract Fraud Example in OpenAPI
176 Example Payor Service
177 Resolving Dependency Conflicts
178 Development with Snapshot Versions
179 Deployment to Maven Central
180 Upgrading Dependent Projects to Release Version

Enterprise Dependency Management
181 Introduction
182 Maven Bill of Materials
183 Maven BOM Creation
184 Maven BOM Setting Common Properties
185 Maven BOM Dependency Management
186 Maven BOM Common Dependencies
187 Maven BOM Common Build Plugins
188 Maven Enforcer Build Plugin
189 Beer Service Parent BOM Configuration
190 Assignment Update Services to use BOM
191 Assignment Review
192 Using Released BOMs
193 Assignment Update Services to use Release BOM
194 Assignment Review
195 IntelliJ Workspace Tips and Tricks
196 Conclusion

Appendix A Using GitHub
197 Git and GitHub Basics Start here
198 GitHub Workflow