ferstl / depgraph-maven-plugin

A Maven plugin that generates dependency graphs in various formats (DOT, GML, PlantUML, JSON and Text)
Apache License 2.0
561 stars 85 forks source link

Can we get output with nested childs and parent relation? #168

Open rohitcoder opened 2 years ago

rohitcoder commented 2 years ago

I want to get output something like this, where all children and parents will be linked to each othere, something like this. I don't think this is possible in current version?

[
  {
    "name": "com.appsecco:dvja",
    "version": "1.0-SNAPSHOT",
    "license": "",
    "children": [
      {
        "name": "org.apache.struts:struts2-core",
        "version": "2.3.30",
        "children": [
          {
            "name": "org.apache.struts.xwork:xwork-core",
            "version": "2.3.30",
            "children": []
          },
          {
            "name": "org.freemarker:freemarker",
            "version": "2.3.22",
            "children": []
          },
          {
            "name": "ognl:ognl",
            "version": "3.0.19",
            "children": []
          },
          {
            "name": "commons-fileupload:commons-fileupload",
            "version": "1.3.2",
            "children": []
          },
          {
            "name": "commons-io:commons-io",
            "version": "2.2",
            "children": []
          }
        ]
      },
      {
        "name": "org.apache.struts:struts2-config-browser-plugin",
        "version": "2.3.30",
        "children": []
      },
      {
        "name": "org.apache.struts:struts2-junit-plugin",
        "version": "2.3.30",
        "children": [
          {
            "name": "org.springframework:spring-test",
            "version": "3.0.5.RELEASE",
            "children": []
          },
          {
            "name": "org.springframework:spring-core",
            "version": "3.0.5.RELEASE",
            "children": []
          },
          {
            "name": "org.springframework:spring-context",
            "version": "3.0.5.RELEASE",
            "children": []
          }
        ]
      },
      {
        "name": "org.apache.logging.log4j:log4j-api",
        "version": "2.3",
        "children": []
      },
      {
        "name": "org.apache.logging.log4j:log4j-core",
        "version": "2.3",
        "children": []
      },
      {
        "name": "org.slf4j:slf4j-log4j12",
        "version": "1.5.2",
        "children": [
          {
            "name": "org.slf4j:slf4j-api",
            "version": "1.5.2",
            "children": []
          },
          {
            "name": "log4j:log4j",
            "version": "1.2.14",
            "children": []
          }
        ]
      },
      {
        "name": "cglib:cglib",
        "version": "2.2",
        "children": [
          {
            "name": "asm:asm",
            "version": "3.1",
            "children": []
          }
        ]
      },
      {
        "name": "junit:junit",
        "version": "4.5",
        "children": []
      },
      {
        "name": "javax.servlet:servlet-api",
        "version": "2.4",
        "children": []
      },
      {
        "name": "javax.servlet:jsp-api",
        "version": "2.0",
        "children": []
      },
      {
        "name": "com.jgeppert.struts2.bootstrap:struts2-bootstrap-plugin",
        "version": "2.5.1",
        "children": [
          {
            "name": "org.apache.velocity:velocity-tools",
            "version": "2.0",
            "children": []
          }
        ]
      },
      {
        "name": "org.apache.struts:struts2-spring-plugin",
        "version": "2.3.30",
        "children": [
          {
            "name": "org.springframework:spring-beans",
            "version": "3.0.5.RELEASE",
            "children": []
          },
          {
            "name": "org.springframework:spring-web",
            "version": "3.0.5.RELEASE",
            "children": []
          },
          {
            "name": "org.apache.commons:commons-lang3",
            "version": "3.2",
            "children": []
          }
        ]
      },
      {
        "name": "org.hibernate:hibernate-core",
        "version": "3.3.1.GA",
        "children": [
          {
            "name": "antlr:antlr",
            "version": "2.7.6",
            "children": []
          },
          {
            "name": "commons-collections:commons-collections",
            "version": "3.1",
            "children": []
          },
          {
            "name": "dom4j:dom4j",
            "version": "1.6.1",
            "children": []
          },
          {
            "name": "javax.transaction:jta",
            "version": "1.1",
            "children": []
          }
        ]
      },
      {
        "name": "org.hibernate:hibernate-entitymanager",
        "version": "3.4.0.GA",
        "children": [
          {
            "name": "org.hibernate:ejb3-persistence",
            "version": "1.0.2.GA",
            "children": []
          },
          {
            "name": "org.hibernate:hibernate-commons-annotations",
            "version": "3.1.0.GA",
            "children": []
          },
          {
            "name": "javassist:javassist",
            "version": "3.4.GA",
            "children": []
          }
        ]
      },
      {
        "name": "org.hibernate:hibernate-annotations",
        "version": "3.4.0.GA",
        "children": []
      },
      {
        "name": "commons-codec:commons-codec",
        "version": "1.10",
        "children": []
      },
      {
        "name": "org.springframework:spring-tx",
        "version": "3.0.5.RELEASE",
        "children": [
          {
            "name": "aopalliance:aopalliance",
            "version": "1.0",
            "children": []
          },
          {
            "name": "org.springframework:spring-aop",
            "version": "3.0.5.RELEASE",
            "children": []
          }
        ]
      },
      {
        "name": "org.springframework:spring-orm",
        "version": "3.0.5.RELEASE",
        "children": [
          {
            "name": "org.springframework:spring-jdbc",
            "version": "3.0.5.RELEASE",
            "children": []
          }
        ]
      },
      {
        "name": "mysql:mysql-connector-java",
        "version": "5.1.42",
        "children": []
      },
      {
        "name": "com.google.code.gson:gson",
        "version": "2.8.1",
        "children": []
      }
    ]
  }
]