maven

There is a whole set of Java developer tools standardising and simplifying the build process. Ant, Gradle, Buildr and, of course, Maven are important examples. Maven is getting more and more popular especially in a business context, due to its convention over configuration philosophy. You can build and control a Java project with just a few configuration settings.

In this training course, build and configuration managers will learn to use the basic concepts of Maven in workaday life. Among these concepts are e.g. Repositories, GroupId, ArtifactId, Version. Numerous examples will be presented and the building process will be explained as well as the range of functionalities covered by Maven.

We will discuss the functions of Dependency Management and how artifacts can be integrated into Maven Central. Furthermore, we will present you with build structures in a business environment and the definition of enterprise-level standards.

Trainer und Dozenten

Karl Heinz Marbaise has 25 years of experience in software development. Since 20 years he is working with version control systems like RCS, CVS ClearCase and later on, Subversion and Git. He is conducting consultancy and training courses in the fields of software configuration management (Subversion, Branching Strategies, Migration Consultancy), Build Management (Ant, Maven, Hudson/Jenkins) and development processes. Furthermore, he is giving lectures on these subjects on conferences, e.g Subversion Conference and GearConf.

Voraussetzungen

Knowledge in Java development is a basic prerequisite for this training course. Furthermore, experience in unit testing by means of JUnit or TestNG is required.

Also, basic know-how in the field of revision control (Subversion, Git or the like) will be helpful.

Inhalt

Maven basics:

  • Repositories, Lifecycle
  • Project Object Model (POM)
  • Maven coordinates
  • POM inheritance/aggregation
  • Archetypes

Dependencies

  • Definition of dependencies
  • Transitive dependencies
  • Dependency inclusions vs. exclusions

Case study

  • Elementary POM
  • Packaging, Unit Tests, Resources

Site generation

  • Creating a website
  • Publishing a site (deploy)
  • Documentation, apt, fmt, xdoc, reports

Reactor builds

  • Multiple modules
  • mvn install
  • Integration test
  • Packaging

Assemblies

  • Default assemblies
  • Archive types
  • Component descriptors
  • Creating test-jars

Release cycle

  • Functionality of the release cycle
  • Applying the release cycle
  • Signing artifacts in release cycles

Best practice, POM's, modules

  • Using properties: How to and why?
  • Resource filtering
  • Definiting and using own resources

Inside the settings.xml file

  • Server definition
  • Passwords
  • Deploy server

Profiles

  • settings.xml
  • Profiles in POM's
  • Activiation of profiles
  • Environment, compatibility, refactoring POM's

Varied plugins

  • Compiler, jar
  • Changes, assembly, appassembler, buildnumber
  • Plugin, war, cargo, dependency, antrun