문제

I'm facing a rather large multi module maven project. I would like to see how the root (parent) project is composed out of subprojects/ child projects in the form of groupId:artifactId (possible with some identation to reflect the hierarchy.

Of course I can write my own plugin to get this printout, but I reckon that there must be something available of the shelf.

도움이 되었습니까?

해결책

Hello late answer but I have added a plugin into maven repository:

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

To run the plugin you will need to add into your pom as below:

<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>

then output will look like:

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

Project structure (all modules):



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

If you want to print all files insted of modules use the goal: printAll or if you want just folders use the goal:printFolders. <inherited> means dont execute plugin also in modules and <ignore> mean skip this files using regex pattern.

EDIT: there is never version you can pull from github: https://github.com/buraksarac/MavenStructurePlugin

다른 팁

I haven't encounter such plugin so far nor even heard about one. Google doesn't know about it too, so it's likely you have to write own plugin or try to parse mvn dependency:tree or just reactor build order, probably using heavily console output streaming and so.

I think that mvn dependency:tree is way to go.

You should try this :

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

That way, you will have a nice dependency tree with indentation but without scope, version and type :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top