如何根据依赖关系列出Maven构建/编译序列?

amp*_*ent 16 pom.xml maven

如果我有一个pom层次结构来superpom调用多个彼此依赖的子模块,我如何根据依赖关系列出构建/编译序列?IOW,如果superpom有模块mod1,mod2,mod3和mod2取决于mod3而mod3取决于mod1,那么序列是mod1,mod3,然后是mod2.如何在没有复杂的XML解析数据层次结构的情况下列出该命令?

Beh*_*ehe 37

您想知道的是所谓的反应堆构建顺序.

反应器根据每个项目在各自项目描述符中声明的依赖关系确定正确的构建顺序,然后执行一组规定的目标.它可以用于构建项目和其他目标,例如站点生成.(来源:旧的多模块文档)

它收集所有要构建的模块,对项目进行排序并按顺序构建它们.它保证在其他模块需要之前构建任何模块.

据我所知,没有直接的方法只创建这些项目的列表,但最接近获取信息的是:

mvn validate
Run Code Online (Sandbox Code Playgroud)

它将在顶部显示您的reactor构建顺序:

~/parent$ mvn validate
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] simple.parent
[INFO] simple.child
[INFO] simple.anotherchild
[...]                                                                        
Run Code Online (Sandbox Code Playgroud)

除了验证项目的正确性并且所有必要信息都可用之外,不会执行任何其他工作.

有关更多信息,另请参阅使用多个模块指南以及有关maven reactor的内容的答案.


Cul*_*enJ 7

也许你正在寻找Maven依赖:树选项?您可能需要调整includes以仅包含您的模块.http://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html

mvn dependency:tree -Dverbose -DoutputFile=tree.txt -DoutputType=text -Dincludes=com.mycompany.*
Run Code Online (Sandbox Code Playgroud)