Class DependencyInsightReportTask
- java.lang.Object
-
- org.gradle.api.internal.AbstractTask
-
- org.gradle.api.DefaultTask
-
- org.gradle.api.tasks.diagnostics.DependencyInsightReportTask
-
- All Implemented Interfaces:
java.lang.Comparable<Task>
,org.gradle.api.internal.DynamicObjectAware
,org.gradle.api.internal.TaskInternal
,Named
,ExtensionAware
,Task
,Configurable<Task>
@DisableCachingByDefault(because="Produces only non-cacheable console output") public abstract class DependencyInsightReportTask extends DefaultTask
Generates a report that attempts to answer questions like:- Why is this dependency in the dependency graph?
- Exactly which dependencies are pulling this dependency into the graph?
- What is the actual version (i.e. *selected* version) of the dependency that will be used? Is it the same as what was *requested*?
- Why is the *selected* version of a dependency different to the *requested*?
- What variants are available for this dependency?
While the regular dependencies report (
DependencyReportTask
) shows the path from the top level dependencies down through the transitive dependencies, the dependency insight report shows the path from a particular dependency to the dependencies that pulled it in. That is, it is an inverted view of the regular dependencies report.The task requires setting the dependency spec and the configuration. For more information on how to configure those please refer to docs for
setDependencySpec(Object)
andsetConfiguration(String)
.The task can also be configured from the command line. For more information please refer to
setDependencySpec(Object)
,setConfiguration(String)
,setShowSinglePathToDependency(boolean)
, andgetShowingAllVariants()
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.gradle.api.Task
Task.Namer
-
-
Field Summary
-
Fields inherited from interface org.gradle.api.Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
-
-
Constructor Summary
Constructors Constructor Description DependencyInsightReportTask()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.gradle.api.internal.attributes.ImmutableAttributesFactory
getAttributesFactory()
An injectedImmutableAttributesFactory
.Configuration
getConfiguration()
Configuration to look the dependency inSpec<DependencyResult>
getDependencySpec()
Selects the dependency (or dependencies if multiple matches found) to show the report for.Property<ResolvedComponentResult>
getRootComponentProperty()
The root component of the dependency graph to be inspected.Property<java.lang.Boolean>
getShowingAllVariants()
Show all variants of each displayed dependency.protected org.gradle.internal.logging.text.StyledTextOutputFactory
getTextOutputFactory()
protected org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionComparator
getVersionComparator()
protected org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionParser
getVersionParser()
protected org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionSelectorScheme
getVersionSelectorScheme()
boolean
isShowSinglePathToDependency()
Tells if the report should only show one path to each dependency.void
report()
void
setConfiguration(java.lang.String configurationName)
Sets the configuration (via name) to look the dependency in.void
setConfiguration(Configuration configuration)
Sets the configuration to look the dependency in.void
setDependencySpec(java.lang.Object dependencyInsightNotation)
Configures the dependency to show the report for.void
setDependencySpec(Spec<DependencyResult> dependencySpec)
The dependency spec selects the dependency (or dependencies if multiple matches found) to show the report for.void
setShowSinglePathToDependency(boolean showSinglePathToDependency)
Tells if the report should only display a single path to each dependency, which can be useful when the graph is large.-
Methods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService
-
Methods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.gradle.api.Task
doNotTrackState, getConvention, notCompatibleWithConfigurationCache
-
-
-
-
Method Detail
-
getRootComponentProperty
@Input @Optional @Incubating public Property<ResolvedComponentResult> getRootComponentProperty()
The root component of the dependency graph to be inspected.- Since:
- 7.5
-
getDependencySpec
@Internal @Nullable public Spec<DependencyResult> getDependencySpec()
Selects the dependency (or dependencies if multiple matches found) to show the report for.
-
setDependencySpec
public void setDependencySpec(@Nullable Spec<DependencyResult> dependencySpec)
The dependency spec selects the dependency (or dependencies if multiple matches found) to show the report for. The spec receives an instance ofDependencyResult
as parameter.
-
setDependencySpec
public void setDependencySpec(@Nullable java.lang.Object dependencyInsightNotation)
Configures the dependency to show the report for. Multiple notation formats are supported: Strings, instances ofSpec
and groovy closures. Spec and closure receiveDependencyResult
as parameter. Examples of String notation: 'org.slf4j:slf4j-api', 'slf4j-api', or simply: 'slf4j'. The input may potentially match multiple dependencies. See alsosetDependencySpec(Spec)
This method is exposed to the command line interface. Example usage:
gradle dependencyInsight --dependency slf4j
-
getConfiguration
@Internal @Nullable public Configuration getConfiguration()
Configuration to look the dependency in
-
setConfiguration
public void setConfiguration(@Nullable Configuration configuration)
Sets the configuration to look the dependency in.
-
setConfiguration
public void setConfiguration(@Nullable java.lang.String configurationName)
Sets the configuration (via name) to look the dependency in.This method is exposed to the command line interface. Example usage:
gradle dependencyInsight --configuration runtime --dependency slf4j
-
isShowSinglePathToDependency
@Internal public boolean isShowSinglePathToDependency()
Tells if the report should only show one path to each dependency.- Since:
- 4.9
-
setShowSinglePathToDependency
public void setShowSinglePathToDependency(boolean showSinglePathToDependency)
Tells if the report should only display a single path to each dependency, which can be useful when the graph is large. This is false by default, meaning that for each dependency, the report will display all paths leading to it.This method is exposed to the command line interface. Example usage:
gradle dependencyInsight --single-path
- Since:
- 4.9
-
getShowingAllVariants
@Incubating @Internal public Property<java.lang.Boolean> getShowingAllVariants()
Show all variants of each displayed dependency.Due to internal limitations, this option only works when the
configuration
is unresolved before the execution of this task.This method is exposed to the command line interface. Example usage:
gradle dependencyInsight --all-variants
- Since:
- 7.5
-
getTextOutputFactory
@Inject protected org.gradle.internal.logging.text.StyledTextOutputFactory getTextOutputFactory()
-
getVersionSelectorScheme
@Inject protected org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionSelectorScheme getVersionSelectorScheme()
-
getVersionComparator
@Inject protected org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionComparator getVersionComparator()
-
getVersionParser
@Inject protected org.gradle.api.internal.artifacts.ivyservice.ivyresolve.strategy.VersionParser getVersionParser()
-
getAttributesFactory
@Inject protected org.gradle.api.internal.attributes.ImmutableAttributesFactory getAttributesFactory()
An injectedImmutableAttributesFactory
.- Since:
- 4.9
-
report
public void report()
-
-