The contents of this page have been merged to Taxonomy. The information below is for historical purposes only while the refactoring is taking place.

The taxonomy of a project provides a set of categories, or taxons, that help organize the content of a project. The taxonomy provides the structure within which content can be added easily. The taxonomy is a reference which is not necessarily the form you want to present to users, but provides the basis for creating different views on the content that are easily consumed by users. You may create user guides, howtos, trails, or even a book based on the taxonomy of a project where these derivative works provide a structure that is more familiar and easier to understand by users, but the taxonomy is the pillar around which these derivative works are created.

POM

  • Basics for identity
  • Parent requirements
Existing Documents

Inheritance

  • Combinatorial approaches
  • Application parent
  • Organizational parent

Standard inheritance principles

  • Local specification wins
  • Exceptions to standard inheritance (artifactId, modelVersion, name, packaging, ...? not inherited)

Interpolation

  • Sources
    • POM
    • Runtime Objects
    • System Properties
    • Shell Environment
Existing Documents

Artifacts & Dependencies

  • Scopes
  • Optional flag
  • Exclusions
  • Dependency management
  • Version ranges
  • Conflict resolution
  • Snapshots
    • Update Interval Configuration
    • Using Build Number/Timestamp vs. "SNAPSHOT"
  • Metadata
Existing Documents

Plugins

  • Minimal searchable identity part
  • <pluginGroups> usage
Existing Documents

Plugin- and Execution-Level POM Configuration

  • Phase binding
  • Execution-level configuration
  • Inheritance considerations

Build Life Cycle

  • Sources of mojo bindings
    • Packaging
    • Forked lifecycle overlay
    • POM configuration
    • Active profiles
    • Super POM
  • Forking considerations
    • Tracing entry point to avoid cycles
    • Handling cloned projects
Existing Documents

Reactor

  • Sorting
  • Cyclic dependency checking
  • Failure advice
    • Skipping dependents of failed builds
  • Using fresh interdependency artifacts

Settings

  • Proxy information
  • Authentication information
  • Mirrors
  • Plugin groups
  • Offline mode flag
Existing Documents

Profiles

  • Profile injection and inheritance
  • What you can specify where - restrictions
  • Activating
    • activeProfiles - where used
    • Activation section and activators
    • -P command-line switch
    • activeByDefault
  • Warnings
  • Effects on portability
  • Violating 1:1 POM:artifact mapping (not sure what this is now...old notes...)
Existing Documents

Repositories

  • Aggregation patterns
    • Through inheritance
    • Through transitive resolution
    • Through activated profiles
  • Blacklisting
  • Using layouts
    • Using custom layouts
  • Metadata controls
  • Separating Releases from Snapshots in the repository
    • Releases flag
    • Snapshots flag and update interval
  • Available transports
Existing Documents

Reporting

  • Providing configuration to reports
  • Default reports and effects of overriding

Standards, Best Practices, Design Patterns

  • Maven Standard
  • Adjusting to Non-Standard Directory Structures
Existing Documents