2012-02-10 91 views
2

这是来自多模块父POM的片段。我如何在项目的所有子模块中运行目标?从所有子模块的命令行执行目标


<modules> 
    <module>../utp</module> 
    <module>../testdependency</module> 
</modules> 

当我试图通过mvn -am -pl utp help:evaluate -Dexpression=project.artifactId运行这个目标,我得到的就只是父POM的结果,我不明白的UTP和最终依赖任何结果。
如何在项目的所有子模块上运行目标?

回答

0

根据documentation,我们可以使用help:evaluate来评估一些Maven表达式

这可以以交互方式工作,或以artifactexpression作为参数。如果在项目pom上运行,或者在没有pom的情况下运行artifact,它会报告该项目的结果。

这并不意味着为所有依赖关系提供工件细节。

不知道你的要求是什么......如果是获得各种依赖细节,你可以尝试maven dependency plugin的目标之一,如mvn dependency:listmvn dependency:tree。如果要知道依赖关系的版本是否最新,您可以尝试versions maven plugin的目标,如mvn display-dependency-updates

编辑:其在<pluginManagement定义

插件> POM的部分仅在那些模块,其中这些<plugins>声明运行。在其他模块中,它们不运行。也许mvn help:effective-pom可以提供一些信息。

+0

基本上,我想知道,Maven插件的目标是针对每个模块运行一次,哪些只运行一次。例如,有'exec-maven-plugin',当我执行它的'exec'目标时,它将在每个模块中运行一次,另一方面,如果我创建一个可执行的java类并运行'java'目标,我无法说服Maven在每个模块中运行,它只在父项中运行一次。所以我想知道,如何控制这个。 – coubeatczech 2012-02-14 13:42:57

+0

@coubeatczech。更新了答案。 – Raghuram 2012-02-14 13:50:35