Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Labels:None
-
Number of attachments :
Description
Guide to Working with Multiple Modules (http://maven.apache.org/guides/mini/guide-multiple-modules.html) says:
>> The following relationships are honoured when sorting projects:
>> a project dependency on another module in the build
>> a plugin declaration where the plugin is another modules in the build
>> a plugin dependency on another module in the build
>> a build extension declaration on another module in the build
>> the order declared in the <modules> element (if no other rule applies)
and what's about parent pom relation?
For instance we have three modules:
- parent
- child-1
- child-2
"parent" module is specified as parent pom for modules "child-1" and "child-2":
<parent>
...
<artifactId>parent</artifactId>
...
</parent>
Also we have aggregator module with contents:
<project>
...
<modules>
<module>path to "parent" module</module>
<module>path to "child-1" module</module>
<module>path to "child-2" module</module>
</modules>
...
</project>
Next we type: mvn clean install
Can it be guaranteed that "parent" module will be builded and installed into local repository before "child-1" and "child-2" modules?
The same question but in case of multithreaded execution (-T option is provided)?
As far as I understand from source "maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java" it can:
...
Parent parent = project.getModel().getParent();
if ( parent != null )
{ // Parent is added as an edge, but must not cause a cycle - so we remove any other edges it has // in conflict addEdge( projectMap, vertexMap, null, projectVertex, parent.getGroupId(), parent.getArtifactId(), parent.getVersion(), true, false ); }...