AnalyzeGraphTask

@CacheableTask
abstract class AnalyzeGraphTask : DefaultTask(source)

Analyzes Metro dependency graphs and produces a comprehensive analysis report.

This task consumes the aggregated graph metadata JSON produced by GenerateGraphMetadataTask and runs various graph analysis algorithms including:

  • Basic statistics (binding counts, scoping, etc.)

  • Longest path analysis (critical dependency chains)

  • Dominator analysis (critical dependencies)

  • Betweenness centrality (bridge nodes)

  • Fan-in/fan-out analysis (coupling metrics)

The output is a comprehensive JSON report useful for CI validation, automated analysis, and identifying potential issues in a dependency graph structure.

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
open var actions: List<Action<in Task>>
Link copied to clipboard
open val ant: AntBuilder
Link copied to clipboard
@get:Internal
open val asDynamicObject: DynamicObject
Link copied to clipboard
open val dependsOn: Set<Any>
Link copied to clipboard
open var description: @Nullable String?
Link copied to clipboard
open val destroyables: TaskDestroyables
Link copied to clipboard
open var didWork: Boolean
Link copied to clipboard
open var enabled: Boolean
Link copied to clipboard
open val extensions: ExtensionContainer
Link copied to clipboard
open val finalizedBy: TaskDependency
Link copied to clipboard
open var group: @Nullable String?
Link copied to clipboard
open val identityPath: Path
Link copied to clipboard
Link copied to clipboard
@get:InputFile
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val inputFile: RegularFileProperty

The aggregated graph metadata JSON file to analyze.

Link copied to clipboard
open val inputs: TaskInputsInternal
Link copied to clipboard
@get:Internal
open var isEnabled: Boolean
Link copied to clipboard
Link copied to clipboard
@get:Internal
open val lifecycleDependencies: TaskDependencyInternal
Link copied to clipboard
open val localState: TaskLocalState
Link copied to clipboard
open val logger: Logger
Link copied to clipboard
open val logging: LoggingManager
Link copied to clipboard
@get:Input
abstract val maxLongestPaths: Property<Int>

Maximum number of longest paths to include in the report.

Link copied to clipboard
open val mustRunAfter: TaskDependency
Link copied to clipboard
open val name: String
Link copied to clipboard
open val onlyIf: Spec<in TaskInternal>
Link copied to clipboard
@get:OutputFile
abstract val outputFile: RegularFileProperty

The output file for the analysis report.

Link copied to clipboard
open val outputs: TaskOutputsInternal
Link copied to clipboard
open val path: String
Link copied to clipboard
open val project: Project
Link copied to clipboard
Link copied to clipboard
open val requiredServices: TaskRequiredServices
Link copied to clipboard
open val sharedResources: List<ResourceLock>
Link copied to clipboard
open val shouldRunAfter: TaskDependency
Link copied to clipboard
open val standardOutputCapture: StandardOutputCapture
Link copied to clipboard
open val state: TaskStateInternal
Link copied to clipboard
open val taskActions: List<InputChangesAwareTaskAction>
Link copied to clipboard
open val taskDependencies: TaskDependencyInternal
Link copied to clipboard
open val taskIdentity: TaskIdentity<*>
Link copied to clipboard
open val temporaryDir: File
Link copied to clipboard
open val temporaryDirFactory: Factory<File>
Link copied to clipboard
open val timeout: Property<Duration>
Link copied to clipboard
@get:Input
abstract val topFanCount: Property<Int>

Number of top fan-in/fan-out bindings to highlight.

Functions

Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec>)
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task>)
Link copied to clipboard
open operator fun compareTo(otherTask: Task): Int
Link copied to clipboard
open fun configure(closure: Closure<*>): Task
Link copied to clipboard
open fun dependsOn(vararg paths: Any): Task
Link copied to clipboard
open fun doFirst(action: Closure<*>): Task
open fun doFirst(action: Action<in Task>): Task
open fun doFirst(actionName: String, action: Action<in Task>): Task
Link copied to clipboard
open fun doLast(action: Closure<*>): Task
open fun doLast(action: Action<in Task>): Task
open fun doLast(actionName: String, action: Action<in Task>): Task
Link copied to clipboard
open fun doNotTrackState(reasonNotToTrackState: String)
Link copied to clipboard
open fun finalizedBy(vararg paths: Any): Task
Link copied to clipboard
open fun hasProperty(propertyName: String): Boolean
Link copied to clipboard
Link copied to clipboard
open fun mustRunAfter(vararg paths: Any): Task
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure<*>)
open fun onlyIf(spec: Spec<in Task>)
open fun onlyIf(onlyIfReason: String, spec: Spec<in Task>)
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task>)
Link copied to clipboard
open fun property(propertyName: String): Any
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<*>)
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<*>)
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<*>)
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure<*>)
open fun setOnlyIf(spec: Spec<in Task>)
open fun setOnlyIf(onlyIfReason: String, spec: Spec<in Task>)
Link copied to clipboard
open fun setProperty(name: String, value: Any)
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<*>)
Link copied to clipboard
open fun shouldRunAfter(vararg paths: Any): TaskDependency
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<*>>)