有没有办法打印多模块maven项目的结构?

有没有办法打印多模块maven项目的结构?

问题描述:

我正面临一个相当大的多模块maven项目。我想看看根(父)项目是如何由groupId形式的子项目/子项目组成的:artifactId(可以通过一些标识来反映层次结构)有没有办法打印多模块maven项目的结构?

当然,我可以编写自己的插件得到这个打印输出,但我认为,一定有什么可用的货架。

你好晚的答案,但我添加了一个插件到Maven仓库:

<dependency> 
    <groupId>org.qunix</groupId> 
    <artifactId>structure-maven-plugin</artifactId> 
    <version>0.0.1</version> 
</dependency> 

运行,您将需要添加到您的pom如下插件:

<build> 
     <plugins> 

      <plugin> 
       <groupId>org.qunix</groupId> 
       <artifactId>structure-maven-plugin</artifactId> 
       <version>0.0.1</version> 
       <inherited>false</inherited> 
       <executions> 
        <execution> 
         <phase>compile</phase> 
         <goals> 
          <goal> 
           printModules 
          </goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 

    </build> 

然后输出如下:

[INFO] --- structure-maven-plugin:0.0.1:printModules (default) @ test --- 
[INFO] 

Project structure (all modules): 



       test 
       | 
       |__ a 
       | 
       |__ b 
       | 
       | 
       \__ c 
        | 
        |__ d 
        | 
        |__ e 
        | 
        |__ f 

如果您想要打印的所有文件insted的模块的使用目标:printAll,或者如果你只想文件夹使用的目标:printFolders<inherited>意味着不要在模块中执行插件,并且<ignore>表示使用正则表达式模式跳过此文件。

编辑:从来没有版本,你可以从github拉:https://github.com/buraksarac/MavenStructurePlugin

+1

这个插件太棒了!你是最好的。 – javajavajava 2016-10-07 16:15:44

+0

@javajavajava我很高兴它帮助:) – HRgiger 2016-10-10 08:25:08

+1

@HRgiger伟大的工作!这正是我想要的。对不起,我的(非常)迟到的答复。 – sjaak 2017-02-11 12:06:18

我还没有遇到过这样的插件,甚至没有听说过一个谷歌也不知道它,所以它可能你有写自己的插件或尝试解析mvn dependency:tree或只是反应堆建造顺序,可能使用大量控制台输出流等。

+0

谢谢。我已经害怕这个答案。 – sjaak 2012-04-19 14:10:18

我认为MVN dependency:tree的方式去。

你应该试试这个:

mvn dependency:tree -DoutputFile=target/dependencies.txt 
cat target/dependencies.txt | awk -F ':' '{print $1":"$2}' 

这样的话,你将有一个不错的依赖关系树与缩进,但没有范围,版本和类型:)

+0

谢谢。但我的意思是相反的。是的,您可以通过树来打印子组件的依赖关系。但是,您是否也可以收集根项目(由子组件构成)所需的所有依赖关系? – sjaak 2012-10-03 12:01:48