Mastering Maven
Maven is a comprehensive project info and build tool, often referred to as the next generation version of Ant. It introduces the beneficial "Convention over Configuration" mantra to the build-script world, allowing build scripts just 5 lines long to compile .java files, build standardized JARs, and produce a comprehensive project web site with change logs, cross referenced HTML source code, and more. Maven has been on the Java build tools scene for quite a number of years, but the adoption rate in enterprises is now going through the roof. Maven can seem daunting, but this presentation will equip you with efficient techniques and tools to overcome hurdles and troubleshoot build issues with ease.
We'll examine tools to find artifacts in central repositories, manage your corporation's internal Maven artifacts with a proxy tool such as Nexus, view and override dependency graphs, implement multi-module best practices, create OS specific profiles, and leverage the latest Maven plugins for the top Java IDEs.
Topping it off, we will review migration paths from Ant, and why Maven is a perfect blend with your company's use of the ever growing web of open source libraries.
Topics Covered: -Using Maven in an Ant world. -Ant to Maven migration strategies. -How Maven lowers the lines of build scripts you write. -Convention over Configuration benefits. -Achieving library reuse. -Effective use of Maven in the enterprise. -Understanding error messages. -Efficient troubleshooting.
Session Agenda
Sessions begin at 9AM and end at 5PM. Attendees must bring their own laptop.
Day 1
- Installation and setup of Maven
- The project object model (POM) and lifecycle
- The Maven directory structure
- Using and creating archetypes
- Maven in IDEs (Eclipse, IntelliJ, NetBeans)
- Multi-module projects for EARs
- Module and directory structure best practices
- SCM integration and manageable component versioning
Day 2
- Continuous integration with Maven
- Repositories and repository managers
- Automatic website generation
- Debugging plugins and JUnit tests
- Writing Maven plugins
- OS specific build tasks with profiles
- Maven 3.0 overview