Details
-
Type:
Task
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: Documentation Deficit
-
Component/s: Documentation: General
-
Labels:None
-
Complexity:Intermediate
-
Number of attachments :
Description
Create a document that will describe how POMs can be related to one another in a multimodule build. Specifically, document:
- The parent-child relationship - how is this manifest in the POMs
- How does the <modules/> section work
- How does the <relativePath/> element of the <parent/> section work...and what is required in the <parent/> section?
- How to install ONLY the parent POM for a multimodule setup (mvn -N pom.xml at the top level)
- How to build an entire multimodule setup from one command (tie all of this together into a working example)
Related to this, but in another document, should be a list of things that are inherited (could be a link to somewhere else, if this documentation exists in other places). Also, the algorithm used to merge inherited and local POM sections should be in this other document.
1. Parents capture shared configurations. This role should not be confused with aggregation.
2. In the absence of <relativePath/> it is not safe to assume the pom in the parent directory is the parent pom. It might be an aggregation pom.
3. It is very useful to gain access to the parent solely through the repository.