Backgroung and Overview
Build tools evolution in the Java community
- Ant
- Maven
- Ivy
- Gradle
- Installation of Maven
The target application
Presentation of the sample project used during the course to serve as the target for writing Maven POMs
Maven Theory
- Standardized project layout
- The POM and its structure
- Important POM elements
- Standarized build commands
- Plugins
- Plugin goals
- The Maven build life-cycle
- Local settings
Bulding Java Apps
- Overview of the steps
- Setting Java options
- Passing compiler options, not directly supported by the compiler plugin
- Creating JAR files
- Making a JAR executable
- Generating JavaDocs
- Using user-defined java-doc tags
Dependencies
- What is a dependency
- Understanding the concept artefact repository
- What is transitive dependency
- How to search for 3rd party libraries (JARs)
- Maven coordinates
- Configuring dependencies
- Scopes
- Using non-standard repositories
- The local Maven cache
- Installing JARs to the local cache and why it is useful
Testing
- Setting up test source directories
- Loading resource files from teh class path
- Running tests
- Surpressing tests
- Test result reports
Sub-Projects
- The single project artefact principle
- Parent POM
- Child POM
- Running recursive Maven build commands
Web Applications
- Web app directory structure
- Web POM
- Building WAR artefacts
- Running a WAR file
Site and Reports
- Directory content
- Almost Plain Text and other markup formats
- Reports
- Report plugins
- Site descriptor
- Generating a site
Proxy and Artefact Servers
- What is a Maven proxy server
- What is a Maven artefact server
- Available Maven servers
- Configuring Maven to use a proxy server
- Deploying to an internal artefact server