Common Lifecycle Goals
Many of the packaging lifecycles have similar goals. If you look
at the goals bound to the WAR and
JAR lifecycles, you’ll see that they differ only in
the package phase. The package
phase of the WAR lifecycle calls
war:war and the package phase of
the JAR lifecycle calls jar:jar.
Most of the lifecycles you will come into contact with share some
common lifecycle goals for managing resources, running tests, and
compiling source code. In this section, we’ll explore some of these
common lifecycle goals in detail.
Process Resources
Most lifecycles bind the
resources:resources goal to the process-resources
phase. The process-resources phase “processes”
resources and copies them to the output directory. If you haven’t
customized the default directory locations defined in the Super
POM, this means that Maven will copy the files
from ${basedir}/src/main/resources to
${basedir}/target/classes or
the directory defined in ${project.build.outputDirectory}. In
addition to copying the resources to the output directory, Maven can
also apply a filter to the resources that allows you to replace
tokens within resource file. Just as variables are referenced in a
POM using ${...} notation, you can reference variables in your project’s resources using the same syntax. Coupled with build profiles, such a facility can be used to produce build artifacts that target different deployment platforms. This is something that is common in environments that need to produce output for development, ...