Following Eugene'scomment, this PR refactorsdependencyTree
into an input task, with the aim of
- Featuring minimal additional settings key (to avoid settings key explosion)
- Supporting all capabilities of
MiniDependencyTreePlugin
- Supporting most capabilities of the full
DependencyTreePlugin
- Supporting
json
output to both terminal & file - Featuring a simple API
The refactored input task is calleddependencyReport
. OldMiniDependencyTreePlugin
settings are still kept for compatibility purpose.
Syntax
dependencyReport [format] [subformat]
Parameters
format: text|json|html|graphml
: specifies the format of the output, defaults totext
subformat
: if applicable further specifies format of outputtext
format:subformat
takeslist|stat|info
, corresponding todependencyList
,dependencyStats
,dependencyLicenseInfo
. Emptysubformat
corresponds todependencyTree
html
format:subformat
takestree|graph
, corresponding tobrowseTreeHTMLTask, browseGraphHTMLTask
json/graphml
format: does not takesubformat
Example
sbt:contraband> dependencyReport[info] org.scala-sbt:contraband_2.12:0.5.3-SNAPSHOT [S][info] +-com.eed3si9n:sjson-new-scalajson_2.12:0.10.0 [S][info] | +-com.eed3si9n:shaded-jawn-parser_2.12:1.3.2 [S][info] | +-com.eed3si9n:shaded-scalajson_2.12:1.0.0-M4 [S][info] | +-com.eed3si9n:sjson-new-core_2.12:0.10.0 [S][info] |[info] +-org.parboiled:parboiled_2.12:2.5.1 [S][info][info] Dependency report written to D:\Repos\contraband\library\target\compile\dependencies.txtsbt:contraband> dependencyReport json[info] [{"text":"org.scala-sbt:contraband_2.12:0.5.3-SNAPSHOT","children":[{"text":"com.eed3si9n:sjson-new-scalajson_2.12:0.10.0","children":[{"text":"com.eed3si9n:shaded-jawn-parser_2.12:1.3.2","children":[]},{"text":"com.eed3si9n:shaded-scalajson_2.12:1.0.0-M4","children":[]},{"text":"com.eed3si9n:sjson-new-core_2.12:0.10.0","children":[]}]},{"text":"org.parboiled:parboiled_2.12:2.5.1","children":[]}]}][info] Dependency report written to D:\Repos\contraband\library\target\compile\dependencies.json[success] Total time: 0 s, completed Oct 30, 2024, 6:11:06 p.m.sbt:contraband> Test / dependencyReport html graph[info] Dependency report written to D:\Repos\contraband\library\target\test\graph\graph.html
Closes#7770
Following Eugene'scomment, this PR refactors
dependencyTree
into an input task, with the aim ofMiniDependencyTreePlugin
DependencyTreePlugin
json
output to both terminal & fileThe refactored input task is called
dependencyReport
. OldMiniDependencyTreePlugin
settings are still kept for compatibility purpose.Syntax
dependencyReport [format] [subformat]
Parameters
format: text|json|html|graphml
: specifies the format of the output, defaults totext
subformat
: if applicable further specifies format of outputtext
format:subformat
takeslist|stat|info
, corresponding todependencyList
,dependencyStats
,dependencyLicenseInfo
. Emptysubformat
corresponds todependencyTree
html
format:subformat
takestree|graph
, corresponding tobrowseTreeHTMLTask, browseGraphHTMLTask
json/graphml
format: does not takesubformat
Example
Closes#7770