Thinking about the developer's perspective a bit, I came up with some
suggestions but no actual language.

The developer is a person who wants to build units of software into
distributable products, so it's useful to talk briefly about
"lifecycle", "phase", "goal", "execution", and "artifact" in terms
familiar to such a person.  *Briefly* -- full details should be
linked.  This is simply to define terms which will then be used to map
the nature of "Maven plugin" to his experience.

A developer probably has a general notion of what a "plugin" is, so
what he needs is to know what a *Maven* plugin is: an assembly of Java
classes which provides additional concepts and behaviors that the
Maven framework can use in building your projects.  It can define
additional lifecycles and phases, and it provides goals that you may
bind to phases in order to perform additional work during the build.
There should be a link to how one creates a Maven plugin, elsewhere.

It may be well to mention at *this* point that much of Maven's
"built-in" behavior is actually provided by included plugins.  In this
way, one first learns what a Maven plugin is and then immediately sees
application of the concept through the lens of the knowledge one has
just gained.  Perhaps pick one common plugin as an example.

Someone noted that "goal" and "Mojo" are often used interchangeably,
but it may be good to mention here that "goal" is a named behavior and
"Mojo" is its implementation.  (If I have that right.)

-- 
Mark H. Wood
Lead Technology Analyst

University Library
Indiana University - Purdue University Indianapolis
755 W. Michigan Street
Indianapolis, IN 46202
317-274-0749
www.ulib.iupui.edu

Attachment: signature.asc
Description: Digital signature

Reply via email to