Core Concepts
Now that we’ve just run Maven for the first time, this is a good point to introduce a few of the core concepts of Maven. In Example 3-1, you generated a project that consisted of a POM and some code assembled in the Maven Standard Directory Layout. You then executed Maven with a lifecycle phase as an argument that prompted Maven to execute a series of Maven plugin goals. Lastly, you installed a Maven artifact into your local repository. Wait—what is a “lifecycle”? What is a “local repository”? The following section defines some of Maven’s central concepts.
Maven Plugins and Goals
In the previous section, we ran Maven with two different types
of command-line arguments. The first command was a
single plugin goal, the create goal of the
Archetype plugin. The second execution of Maven was a lifecycle
phase, install. To execute a single Maven plugin goal, we used the
syntax mvn archetype:create,
where archetype is the identifier of a plugin and
create is the identifier of a goal. When Maven
executes a plugin goal, it prints out the plugin identifier and goal
identifier to standard output:
$ mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 \
-DartifactId=simple \
-DpackageName=org.sonatype.mavenbook
...
[INFO] [archetype:create]
[INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: \
checking for updates from central
...
A Maven plugin is a collection of one or more goals (see Figure 3-1). Examples of Maven plugins can be simple core plugins such ...