Skip to content

Commit 3bc4d30

Browse files
Add a gradle task to list all bom dependencies (#859)
* Add a gradle task to list all bom dependencies This can be run using `./gradlew -q :google-ads-bom:listFlattenedRuntimeDependencies` Sample output: ``` Flattened runtime dependencies: com.google.android:annotations com.google.api-ads:google-ads com.google.api-ads:google-ads-bom com.google.api-ads:google-ads-codegen com.google.api-ads:google-ads-stubs-lib com.google.api-ads:google-ads-stubs-v19 com.google.api-ads:google-ads-stubs-v20 com.google.api-ads:google-ads-stubs-v21 com.google.api.grpc:proto-google-common-protos com.google.api:api-common com.google.api:gax com.google.api:gax-grpc com.google.auth:google-auth-library-credentials com.google.auth:google-auth-library-oauth2-http com.google.auto.service:auto-service com.google.auto.service:auto-service-annotations com.google.auto.value:auto-value-annotations com.google.auto:auto-common com.google.cloud:google-cloud-shared-dependencies com.google.cloud:libraries-bom com.google.code.findbugs:jsr305 com.google.code.gson:gson com.google.errorprone:error_prone_annotations com.google.guava:failureaccess com.google.guava:guava com.google.guava:listenablefuture com.google.http-client:google-http-client com.google.http-client:google-http-client-gson com.google.j2objc:j2objc-annotations com.google.protobuf:protobuf-java com.google.protobuf:protobuf-java-util com.google.re2j:re2j com.squareup:javapoet commons-codec:commons-codec io.grpc:grpc-alts io.grpc:grpc-api io.grpc:grpc-auth io.grpc:grpc-context io.grpc:grpc-core io.grpc:grpc-googleapis io.grpc:grpc-grpclb io.grpc:grpc-inprocess io.grpc:grpc-netty-shaded io.grpc:grpc-protobuf io.grpc:grpc-protobuf-lite io.grpc:grpc-services io.grpc:grpc-stub io.grpc:grpc-util io.grpc:grpc-xds io.opencensus:opencensus-api io.opencensus:opencensus-contrib-http-util io.perfmark:perfmark-api javax.annotation:javax.annotation-api org.apache.httpcomponents:httpclient org.apache.httpcomponents:httpcore org.checkerframework:checker-qual org.codehaus.mojo:animal-sniffer-annotations org.conscrypt:conscrypt-openjdk-uber org.slf4j:slf4j-api org.threeten:threetenbp ``` * Change task name * Update google-ads-bom/build.gradle Co-authored-by: Josh Radcliff <jradcliff@users.noreply.github.com> --------- Co-authored-by: Josh Radcliff <jradcliff@users.noreply.github.com>
1 parent e5d86e3 commit 3bc4d30

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

google-ads-bom/build.gradle

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ jreleaser {
113113
}
114114
}
115115

116+
repositories {
117+
mavenCentral()
118+
}
116119

117120
javaPlatform {
118121
// Allows importing other BOMs, like the Google Cloud BOM below.
@@ -175,3 +178,22 @@ publishing {
175178
}
176179
}
177180
}
181+
182+
// Lists all dependencies available in this BOM, including transitive dependencies.
183+
// This is useful for users to see what dependencies they can use without specifying a version.
184+
task listAllDependencyConstraints {
185+
doLast {
186+
println "Dependency constraints:"
187+
def resolvable = configurations.create("resolvable")
188+
resolvable.dependencies.add(dependencies.platform(project))
189+
resolvable.dependencies.add(dependencies.project(path: ":google-ads"))
190+
191+
def allDeps = new TreeSet<String>()
192+
resolvable.incoming.resolutionResult.allComponents.each { component ->
193+
if (component.moduleVersion != null) {
194+
allDeps.add(component.moduleVersion.id.toString())
195+
}
196+
}
197+
allDeps.each { String dep -> println dep }
198+
}
199+
}

0 commit comments

Comments
 (0)