多模块项目中的Maven依赖收敛报告

时间:2017-06-12 04:37:58

标签: maven maven-site-plugin

我试图在多模块项目中使用maven-project-info-reports插件的dependency-convergence report,如下所示:

test-project-parent
   + test-lib-a
   + test-lib-b

如果我在site:site pom上运行test-lib-a,我会收到报告,我希望能够显示该项目的依赖性收敛。

enter image description here

如果我在父pom上运行site:site,则会为每个项目生成一个依赖性收敛报告,但所有三个报告都是相同的,它们包含有关整个reactor构建的信息,而不仅仅是每个特定项目。

enter image description here

如何为每个模块生成报告仅显示有关该模块的信息而不显示整个反应堆构建?

编辑:这是我的父母pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>site-test-parent</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>Maven Site Test</name>

   <modules>
      <module>test-lib-a</module>
      <module>test-lib-b</module>
   </modules>

   <reporting>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>2.9</version>
            <reportSets>
               <reportSet>
                  <reports>
                     <report>dependency-convergence</report>
                  </reports>
               </reportSet>
            </reportSets>
         </plugin>
      </plugins>
   </reporting>

</project>

这是test-lib-a pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <parent>
      <groupId>org.example</groupId>
      <artifactId>site-test-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
   </parent>

   <artifactId>test-lib-a</artifactId>

   <dependencies>
      <dependency>
         <groupId>commons-lang</groupId>
         <artifactId>commons-lang</artifactId>
         <version>2.4</version>
      </dependency>
   </dependencies>
</project>

第二个屏幕截图是当我在父级上运行site-test/test-lib-a/target/site/dependency-convergence.html时在site:site中生成的内容。

1 个答案:

答案 0 :(得分:0)

所以我只想在我的一个项目中使用类似的配置尝试添加两件事 -

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>2.9</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>dependency-convergence</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>
  1.   

    如何为每个模块生成报告仅显示   关于那个模块而不是整个反应堆构建的信息?

  2. 我可以想出在不同模块上为dependency-convergence生成不同报告的唯一方法是分别在每个模块上执行mvn:site

    1. 来自你所分享的documentation。这似乎不足以证明 as an aggregator plugin. 这一点,因为当我在父级别运行mvn:site时,我希望报告生成模块(子模块)。
    2. 虽然我怀疑(reactor)构建中的具体单词

        

      project-info-reports:dependency-convergence用于生成   (反应堆)构建的项目依赖性收敛报告。

      可能意味着它会为特定构建生成收敛报告。

      可能会向邮件列表提出/报告此信息可能会对此有所帮助。我希望正确放置的别名 dev@maven.apache.org