ferstl / depgraph-maven-plugin

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

Support for Maven Tycho projects #37

Closed sparsick closed 7 years ago

sparsick commented 7 years ago

First at all thanks for the great tool.

It'd be nice to generate dependency graphs for Maven Tycho projects.

ferstl commented 7 years ago

Hi, I am not very familiar with Tycho. Do you have an example what Tycho support should look like? Do you have an example Tycho project to take a look at?

sparsick commented 7 years ago

Maven Tycho is an extension of Apache Maven to build Eclipse RCP application. The main difference between Tycho and "normal" Maven is, that the dependency resolution is mainly done via P2 repositories. I created a sample app to demonstrate a Maven Tycho build without POM dependencies.

The maven-dependency-plugin (I used version 2.8) can list P2 dependencies in a Maven Tycho build. The list (dependency-list goal) of the mentioned sample app looks like the following one:

[INFO] Scanning for projects...
[INFO] Computing target platform for MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.plugin\pom.xml
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/
[INFO] Adding repository http://download.eclipse.org/eclipse/updates/4.6
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6-201606061100/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6-201606061100/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6.1-201609071200/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6.1-201609071200/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6.2-201611241400/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6.2-201611241400/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/
[INFO] Fetching p2.index from http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/
[INFO] Resolving dependencies of MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.plugin\pom.xml
[INFO] Resolving class path of MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.plugin\pom.xml
[INFO] Computing target platform for MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.feature:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.feature\pom.xml
[INFO] Resolving dependencies of MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.feature:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.feature\pom.xml
[INFO] Resolving class path of MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.feature:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.feature\pom.xml
[INFO] Computing target platform for MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.application:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.application\pom.xml
[INFO] Resolving dependencies of MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.application:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.application\pom.xml
[INFO] Resolving class path of MavenProject: com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.application:1.0.0-SNAPSHOT @ D:\workspace-neon\tycho-eclipse-rcp-example\com.github.skosmalla.tycho.rcp.application\pom.xml
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] tycho-rcp-example
[INFO] com.github.skosmalla.tycho.rcp.plugin
[INFO] com.github.skosmalla.tycho.rcp.feature
[INFO] com.github.skosmalla.tycho.rcp.application
[INFO] target-platform
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building tycho-rcp-example 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ tycho-rcp-example ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    none
[INFO] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building com.github.skosmalla.tycho.rcp.plugin 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ com.github.skosmalla.tycho.rcp.plugin ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.swt.theme:jar:0.10.100.v20160523-0836:system
[INFO]    p2.eclipse-plugin:org.eclipse.ui.workbench:jar:3.108.2.v20161025-2029:system
[INFO]    p2.eclipse-plugin:org.eclipse.jface:jar:3.12.1.v20160923-1528:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.widgets:jar:1.1.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.ds:jar:1.4.400.v20160226-2036:system
[INFO]    p2.eclipse-plugin:org.eclipse.help:jar:3.7.0.v20160602-1307:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.runtime:jar:3.12.0.v20160606-1342:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.swt:jar:0.14.1.v20160829-0832:system
[INFO]    p2.eclipse-plugin:org.eclipse.jface.databinding:jar:1.8.1.v20161026-1531:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.common:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.expressions:jar:3.5.100.v20160418-1621:system
[INFO]    p2.eclipse-plugin:org.eclipse.swt:jar:3.105.2.v20161122-0613:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.services:jar:1.2.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.common:jar:3.8.0.v20160509-1230:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di:jar:1.6.1.v20160712-0927:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.events:jar:3.0.0.draft20060413_v201105210656:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.contenttype:jar:3.5.100.v20160418-1621:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di.extensions:jar:0.14.0.v20160211-1614:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.swt:jar:0.12.100.v20160517-1505:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.core:jar:0.12.1.v20161114-0210:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.commands:jar:3.8.0.v20160316-1921:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di.annotations:jar:1.5.0.v20151127-1241:system
[INFO]    p2.eclipse-plugin:javax.xml:jar:1.3.4.v201005080400:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding.property:jar:1.6.0.v20160427-0852:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.contexts:jar:1.5.0.v20160504-0909:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.preferences:jar:3.6.1.v20160815-1406:system
[INFO]    p2.eclipse-plugin:org.eclipse.ui:jar:3.108.1.v20160929-1045:system
[INFO]    p2.eclipse-plugin:org.apache.batik.util:jar:1.7.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.smil:jar:1.0.1.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.jobs:jar:3.8.0.v20160509-0411:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.app:jar:1.3.400.v20150715-1528:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.addons.swt:jar:1.2.100.v20160831-1151:system
[INFO]    p2.eclipse-plugin:org.w3c.css.sac:jar:1.3.1.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.osgi:jar:3.11.2.v20161107-1947:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.registry:jar:3.6.100.v20160223-2218:system
[INFO]    p2.eclipse-plugin:org.apache.batik.util.gui:jar:1.7.0.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.osgi.services:jar:3.5.100.v20160504-1419:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.bindings:jar:0.11.100.v20160509-1025:system
[INFO]    p2.eclipse-plugin:org.apache.batik.css:jar:1.7.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.emf.xpath:jar:0.1.200.v20160506-0804:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench3:jar:0.13.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.di:jar:1.1.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding:jar:1.6.0.v20160412-0910:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.svg:jar:1.1.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.renderers.swt:jar:0.14.0.v20160525-0940:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.model.workbench:jar:1.2.0.v20160229-1459:system
[INFO]    p2.eclipse-plugin:org.apache.commons.jxpath:jar:1.3.0.v200911051830:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.util:jar:1.0.500.v20130404-1337:system
[INFO]    p2.eclipse-plugin:org.eclipse.swt.win32.win32.x86_64:jar:3.105.2.v20161122-0613:system
[INFO]    p2.eclipse-plugin:com.ibm.icu:jar:56.1.0.v201601250100:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench:jar:1.4.0.v20160517-1624:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding.observable:jar:1.6.0.v20160511-1747:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.commands:jar:0.11.100.v20160506-0804:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore.xmi:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore.change:jar:2.11.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:javax.inject:jar:1.0.0.v20091030:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.services:jar:2.0.100.v20160509-1032:system
[INFO] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building com.github.skosmalla.tycho.rcp.feature 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ com.github.skosmalla.tycho.rcp.feature ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.swt.theme:jar:0.10.100.v20160523-0836:system
[INFO]    p2.eclipse-plugin:org.eclipse.ui.workbench:jar:3.108.2.v20161025-2029:system
[INFO]    p2.eclipse-plugin:org.eclipse.jface:jar:3.12.1.v20160923-1528:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.widgets:jar:1.1.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.ds:jar:1.4.400.v20160226-2036:system
[INFO]    p2.eclipse-plugin:org.eclipse.help:jar:3.7.0.v20160602-1307:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.runtime:jar:3.12.0.v20160606-1342:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.swt:jar:0.14.1.v20160829-0832:system
[INFO]    p2.eclipse-plugin:org.eclipse.jface.databinding:jar:1.8.1.v20161026-1531:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.common:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.expressions:jar:3.5.100.v20160418-1621:system
[INFO]    p2.eclipse-plugin:org.eclipse.swt:jar:3.105.2.v20161122-0613:system
[INFO]    com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:eclipse-plugin:1.0.0-SNAPSHOT:provided
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.services:jar:1.2.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.common:jar:3.8.0.v20160509-1230:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di:jar:1.6.1.v20160712-0927:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.events:jar:3.0.0.draft20060413_v201105210656:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.contenttype:jar:3.5.100.v20160418-1621:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di.extensions:jar:0.14.0.v20160211-1614:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.swt:jar:0.12.100.v20160517-1505:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.core:jar:0.12.1.v20161114-0210:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.commands:jar:3.8.0.v20160316-1921:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di.annotations:jar:1.5.0.v20151127-1241:system
[INFO]    p2.eclipse-plugin:javax.xml:jar:1.3.4.v201005080400:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding.property:jar:1.6.0.v20160427-0852:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.contexts:jar:1.5.0.v20160504-0909:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.preferences:jar:3.6.1.v20160815-1406:system
[INFO]    p2.eclipse-plugin:org.eclipse.ui:jar:3.108.1.v20160929-1045:system
[INFO]    p2.eclipse-plugin:org.apache.batik.util:jar:1.7.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.smil:jar:1.0.1.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.jobs:jar:3.8.0.v20160509-0411:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.app:jar:1.3.400.v20150715-1528:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.addons.swt:jar:1.2.100.v20160831-1151:system
[INFO]    p2.eclipse-plugin:org.w3c.css.sac:jar:1.3.1.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.osgi:jar:3.11.2.v20161107-1947:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.registry:jar:3.6.100.v20160223-2218:system
[INFO]    p2.eclipse-plugin:org.apache.batik.util.gui:jar:1.7.0.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.osgi.services:jar:3.5.100.v20160504-1419:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.bindings:jar:0.11.100.v20160509-1025:system
[INFO]    p2.eclipse-plugin:org.apache.batik.css:jar:1.7.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.emf.xpath:jar:0.1.200.v20160506-0804:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench3:jar:0.13.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.di:jar:1.1.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding:jar:1.6.0.v20160412-0910:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.svg:jar:1.1.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.renderers.swt:jar:0.14.0.v20160525-0940:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.model.workbench:jar:1.2.0.v20160229-1459:system
[INFO]    p2.eclipse-plugin:org.apache.commons.jxpath:jar:1.3.0.v200911051830:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.util:jar:1.0.500.v20130404-1337:system
[INFO]    p2.eclipse-plugin:org.eclipse.swt.win32.win32.x86_64:jar:3.105.2.v20161122-0613:system
[INFO]    p2.eclipse-plugin:com.ibm.icu:jar:56.1.0.v201601250100:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench:jar:1.4.0.v20160517-1624:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding.observable:jar:1.6.0.v20160511-1747:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.commands:jar:0.11.100.v20160506-0804:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore.xmi:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore.change:jar:2.11.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:javax.inject:jar:1.0.0.v20091030:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.services:jar:2.0.100.v20160509-1032:system
[INFO] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building com.github.skosmalla.tycho.rcp.application 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ com.github.skosmalla.tycho.rcp.application ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.swt.theme:jar:0.10.100.v20160523-0836:system
[INFO]    p2.eclipse-plugin:org.eclipse.ui.workbench:jar:3.108.2.v20161025-2029:system
[INFO]    p2.eclipse-plugin:org.eclipse.jface:jar:3.12.1.v20160923-1528:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.widgets:jar:1.1.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.ds:jar:1.4.400.v20160226-2036:system
[INFO]    p2.eclipse-plugin:org.eclipse.help:jar:3.7.0.v20160602-1307:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.runtime:jar:3.12.0.v20160606-1342:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.swt:jar:0.14.1.v20160829-0832:system
[INFO]    p2.eclipse-plugin:org.eclipse.jface.databinding:jar:1.8.1.v20161026-1531:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.common:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.expressions:jar:3.5.100.v20160418-1621:system
[INFO]    p2.eclipse-plugin:org.eclipse.swt:jar:3.105.2.v20161122-0613:system
[INFO]    com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:eclipse-plugin:1.0.0-SNAPSHOT:provided
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.services:jar:1.2.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.common:jar:3.8.0.v20160509-1230:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di:jar:1.6.1.v20160712-0927:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.events:jar:3.0.0.draft20060413_v201105210656:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.contenttype:jar:3.5.100.v20160418-1621:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di.extensions:jar:0.14.0.v20160211-1614:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.swt:jar:0.12.100.v20160517-1505:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.css.core:jar:0.12.1.v20161114-0210:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.commands:jar:3.8.0.v20160316-1921:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.di.annotations:jar:1.5.0.v20151127-1241:system
[INFO]    p2.eclipse-plugin:javax.xml:jar:1.3.4.v201005080400:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding.property:jar:1.6.0.v20160427-0852:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.contexts:jar:1.5.0.v20160504-0909:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.preferences:jar:3.6.1.v20160815-1406:system
[INFO]    p2.eclipse-plugin:org.eclipse.ui:jar:3.108.1.v20160929-1045:system
[INFO]    p2.eclipse-plugin:org.apache.batik.util:jar:1.7.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.smil:jar:1.0.1.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.jobs:jar:3.8.0.v20160509-0411:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.app:jar:1.3.400.v20150715-1528:system
[INFO]    com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.feature:eclipse-feature:1.0.0-SNAPSHOT:provided
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.addons.swt:jar:1.2.100.v20160831-1151:system
[INFO]    p2.eclipse-plugin:org.w3c.css.sac:jar:1.3.1.v200903091627:system
[INFO]    p2.eclipse-plugin:org.eclipse.osgi:jar:3.11.2.v20161107-1947:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.registry:jar:3.6.100.v20160223-2218:system
[INFO]    p2.eclipse-plugin:org.apache.batik.util.gui:jar:1.7.0.v200903091627:system
[INFO]    p2.eclipse-feature:org.eclipse.equinox.executable:jar:3.6.300.v20161122-1740:system
[INFO]    p2.eclipse-plugin:org.eclipse.osgi.services:jar:3.5.100.v20160504-1419:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.bindings:jar:0.11.100.v20160509-1025:system
[INFO]    p2.eclipse-plugin:org.apache.batik.css:jar:1.7.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.emf.xpath:jar:0.1.200.v20160506-0804:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench3:jar:0.13.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.di:jar:1.1.100.v20160506-0759:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding:jar:1.6.0.v20160412-0910:system
[INFO]    p2.eclipse-plugin:org.w3c.dom.svg:jar:1.1.0.v201011041433:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench.renderers.swt:jar:0.14.0.v20160525-0940:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.launcher:jar:1.3.201.v20161025-1711:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.model.workbench:jar:1.2.0.v20160229-1459:system
[INFO]    p2.eclipse-plugin:org.apache.commons.jxpath:jar:1.3.0.v200911051830:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.util:jar:1.0.500.v20130404-1337:system
[INFO]    p2.eclipse-plugin:org.eclipse.swt.win32.win32.x86_64:jar:3.105.2.v20161122-0613:system
[INFO]    p2.eclipse-plugin:com.ibm.icu:jar:56.1.0.v201601250100:system
[INFO]    p2.eclipse-plugin:org.eclipse.equinox.launcher.win32.win32.x86_64:jar:1.1.401.v20161122-1740:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.ui.workbench:jar:1.4.0.v20160517-1624:system
[INFO]    p2.eclipse-plugin:org.eclipse.core.databinding.observable:jar:1.6.0.v20160511-1747:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.commands:jar:0.11.100.v20160506-0804:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore.xmi:jar:2.12.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:org.eclipse.emf.ecore.change:jar:2.11.0.v20160420-0247:system
[INFO]    p2.eclipse-plugin:javax.inject:jar:1.0.0.v20091030:system
[INFO]    p2.eclipse-plugin:org.eclipse.e4.core.services:jar:2.0.100.v20160509-1032:system
[INFO] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building target-platform 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ target-platform ---
[INFO] 
[INFO] The following files have been resolved:
[INFO]    none
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] tycho-rcp-example .................................. SUCCESS [  0.678 s]
[INFO] com.github.skosmalla.tycho.rcp.plugin .............. SUCCESS [  0.022 s]
[INFO] com.github.skosmalla.tycho.rcp.feature ............. SUCCESS [  0.024 s]
[INFO] com.github.skosmalla.tycho.rcp.application ......... SUCCESS [  0.020 s]
[INFO] target-platform .................................... SUCCESS [  0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.290 s
[INFO] Finished at: 2017-05-29T10:01:41+02:00
[INFO] Final Memory: 38M/666M
[INFO] ------------------------------------------------------------------------

List items prefixed with "p2.eclipse-plugin" are dependencies resolving from P2 repositories. List items without this prefix are modules from the same project. If I run depgraph:graph on the sample application, I get a graph with one node:

digraph "tycho-rcp-example" {
  node [shape="box",style="rounded",fontname="Helvetica",fontsize="14"]
  edge [fontsize="10",fontname="Helvetica"]

  // Node Definitions:
  "com.github.skosmalla.tycho.rcp.example:tycho-rcp-example:pom:"[label=<tycho-rcp-example>]

  // Edge Definitions:
}

My expectation is that a graph is generated that looks similar to the following one: sample app graph

I hope this explanation helps a little bit.

ferstl commented 7 years ago

With mvn com.github.ferstl:depgraph-maven-plugin:2.2.0:graph -Dincludes="com.github.skosmalla.tycho.rcp.example:*", I get this dependency graph:

digraph "com.github.skosmalla.tycho.rcp.application" {
  node [shape="box",style="rounded",fontname="Helvetica",fontsize="14"]
  edge [fontsize="10",fontname="Helvetica"]

  // Node Definitions:
  "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.application:eclipse-repository:"[label=<com.github.skosmalla.tycho.rcp.application>]
  "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.feature:eclipse-feature:"[label=<com.github.skosmalla.tycho.rcp.feature<font point-size="10"><br/>(provided)</font>>]
  "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:eclipse-plugin:"[label=<com.github.skosmalla.tycho.rcp.plugin<font point-size="10"><br/>(provided)</font>>]

  // Edge Definitions:
  "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.application:eclipse-repository:" -> "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.feature:eclipse-feature:"
  "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.application:eclipse-repository:" -> "com.github.skosmalla.tycho.rcp.example:com.github.skosmalla.tycho.rcp.plugin:eclipse-plugin:"
}

When I omit -Dincludes="com.github.skosmalla.tycho.rcp.example:*" there are many more external dependencies. But all dependencies seem to be resolved directly from com.github.skosmalla.tycho.rcp.application. There aren't any transitive dependencies because all dependencies have provided scope. There is no transitive resolution for this scope.

ferstl commented 7 years ago

So, I think the plugin does basically work for Tycho projects too. But Maven/Tycho seems to "flatten" all dependencies in each module. So I think I can't do more about it.

This is the full graph of the com.github.skosmalla.tycho.rcp.application module:

dependency-graph

sparsick commented 7 years ago

Thank you for your analyze. I will play around with the aggegrate goal. Maybe I get a graph that match my expectation a little bit.

sparsick commented 7 years ago

Running mvn depgraph:aggregate -Dincludes="com.github.skosmalla.tycho.rcp.example:*" creates following graph:

dependency-graph

It's near by to my expected graph, I posted some comments above. Unfortunately, feature module is shown as two different nodes. Using the property -DmergeScopes=true helps.

So running mvn depgraph:aggregate -Dincludes="com.github.skosmalla.tycho.rcp.example:*" -DmergeScopes=true creates a graph that is useful for analyzing internal dependencies of a Maven Tycho project (IMHO )

dependency-graph

ferstl commented 7 years ago

Ok, then it seems the plugin works for you "as is" with the aggregate goal and the two options above? If not, please let me know. For now, I'll close this issue.