Java/Apache Maven: The Truth About Building Java Programs
What you'll learn
- Choose to take advantage of using a Parent POM
- Spot when to use Properties and Profiles to add conditional logic to a build
- Understand Maven Inheritance and Aggregation mechanism
- Spot when to choose Maven Inheritance or Aggregation or Both!
- Spot the Major differences between a standard Project and a Multi-Module project
- Spot the costly pitfalls of various Multi-Module design approaches
- Choose the correct design approach for their Multi-Module Project
- Choose to take advantage of Mavens support for Respository Managers, such as Nexus
- Understand the Maven SNAPSHOT concept in the software life-cycle
- Spot how to take advantage of SNAPSHOTS
- Choose to take advantage of Maven's support for SCM, such as GitHub
- Understand how to perform a Full RELEASE of software using the Maven Release Plugin
- Choose to take advantage of Mavens 'Site' generation and deployment
- Some previous experience of Maven is needed; either through my course 'Maven :101 Stop Building Java Programs the Hard Way!' or hands on experience
- Some knowledge of the Eclipse IDE is required, as Eclipse integration with Maven is used
- Some knowledge of the Java development language is required
- All software needed for the source is available Free online for download, so internet connection is required
- All Source code for the course is available for download in the 'Resources area'
This is a follow on course from "Java/Apache Maven: Stop Building Java Programs the Hard Way!" and continues where Maven 101 left off ...
By the end of this course you will understand how and why Java and the Apache Maven Build Tool work so well together.
You’ll be able to work competently with the Apache Maven Build Tool by taking the knowledge you gained from course "Java/Apache Maven: Stop Building Java Programs the Hard Way!" the next level;
Course based on using Maven with Eclipse IDE and command line.
Some of the things covered are;
Understanding What a Parent POM is and Why your Projects really needs one. How to use Maven Build Properties and Profiles and How they can work together to make your life as a developer so much easier.
We take a deep dive into Multi-Module Projects and Discover the difference between mavens 'Inheritance' mechanism and its 'Aggregation' mechanism and How to get the best out of both with simple and clear examples.
We look at Design considerations required when organizing and designing Multi-Module Projects, so you can avoid some common and expensive pitfalls for your projects.
We take another deep dive when we look at the Maven Release Process and how it works; Looking at performing SNAPSHOT releases too full blow Releases. What are they and how they work in the Maven way of doing things!
We look at the whole build life-cycle from the Development Team perspective to the Build Manager Preparing and Performing a Full Release of a Multi-Module Project, including a project web site also built by Maven.
We look at some other Tools that work along with Maven; How to set up your very own Nexus Repository Manager. How to integrate maven with SCM (Source Control Management) system, such as GitHub.
You will be up and running Releasing code through Maven in under 5 hours!!
Who this course is for:
- Developers looking to get the most from Maven
- Build managers looking to understand the Maven Release Process
- Experienced Maven users who are looking to refresh their Maven skills
- This Course is for any one who had completed my course 'Maven :101 Stop Building Java Programs the Hard Way!'
- This is an Intermediate course, not for beginners
Bruce is a techie, a gadget geek, programmer, mentor and all round technology nut. With over 25 years in the software business as an IT Contractor and a former University Lecturer in Computer Studies, he's currently working freelance as a Software Engineering Trainer. He loves what technology can do for us. Building applications using Functional, Object Orientated languages & polyglot persistence helps him reconnect with the feeling of building something tangible.