@@ -134,4 +134,40 @@ uploadArchives {
134134 }
135135 }
136136 }
137+ }
138+
139+ // TODO: Remove task after upgrading Gradle >= 5.2
140+ import org.gradle.api.artifacts.ResolvedDependency
141+ import org.gradle.api.artifacts.Configuration
142+ import java.io.BufferedWriter
143+ import java.io.FileWriter
144+ tasks. register(" generateDependencyReport" ) {
145+ doLast {
146+ def outputFile = file(" ${ buildDir} /dependency-report.txt" )
147+ File parentDir = outputFile. parentFile
148+ if (! parentDir. exists() && ! parentDir. mkdirs()) {
149+ throw new IOException (" Failed to create directory ${ parentDir} " )
150+ }
151+ BufferedWriter writer = new BufferedWriter (new FileWriter (outputFile))
152+ try {
153+ project. configurations. each { Configuration config ->
154+ if (config. isCanBeResolved()) {
155+ writer. write(" Configuration: ${ config.name} \n " )
156+ config. resolvedConfiguration. firstLevelModuleDependencies. each { ResolvedDependency dep ->
157+ printDependency(dep, writer, 1 )
158+ }
159+ }
160+ }
161+ } finally {
162+ writer. close()
163+ }
164+ println (" Dependency report generated: ${ outputFile.absolutePath} " )
165+ }
166+ }
167+ void printDependency (ResolvedDependency dependency , BufferedWriter writer , int level ) {
168+ def indentation = " " * level
169+ writer. write(" ${ indentation} - ${ dependency.moduleGroup} :${ dependency.moduleName} :${ dependency.moduleVersion} \n " )
170+ dependency. children. each { ResolvedDependency child ->
171+ printDependency(child, writer, level + 1 )
172+ }
137173}
0 commit comments