Skip to content

Instantly share code, notes, and snippets.

@suztomo
Last active May 29, 2020 21:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suztomo/ab1cb8b9d6b86df65b78c8b5c33d210b to your computer and use it in GitHub Desktop.
Save suztomo/ab1cb8b9d6b86df65b78c8b5c33d210b to your computer and use it in GitHub Desktop.
kob-aha's PR to make gradle-offline-dependencies-plugin with BOMs

Install the plugin locally

Install the plugin as io.pry.gradle.offline_dependencies:offline-dependencies-plugin:0.6.0-SNAPSHOT.

suztomo-macbookpro44% ./gradlew publishToMavenLocal --console plain -d |grep '.m2'
suztomo-macbookpro44% git status
On branch bom_support
nothing to commit, working tree clean
suztomo-macbookpro44% pwd
/Users/suztomo/gradle-offline-dependencies-plugin
suztomo-macbookpro44% ls /Users/suztomo/.m2/repository/io/pry/gradle/offline_dependencies/offline-dependencies-plugin/0.6.0-SNAPSHOT/offline-dependencies-plugin-0.6.0-SNAPSHOT.*
/Users/suztomo/.m2/repository/io/pry/gradle/offline_dependencies/offline-dependencies-plugin/0.6.0-SNAPSHOT/offline-dependencies-plugin-0.6.0-SNAPSHOT.jar
/Users/suztomo/.m2/repository/io/pry/gradle/offline_dependencies/offline-dependencies-plugin/0.6.0-SNAPSHOT/offline-dependencies-plugin-0.6.0-SNAPSHOT.pom
suztomo-macbookpro44% pwd
/Users/suztomo/gradle-offline-dependencies-plugin
suztomo-macbookpro44% git diff
diff --git a/build.gradle b/build.gradle
index b6a0787..9a3bb45 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,6 +10,7 @@ buildscript {
 }
 
 apply plugin: "com.gradle.plugin-publish"
+apply plugin: "maven-publish"
 apply plugin: 'groovy'
 
 group = 'io.pry.gradle.offline_dependencies'
@@ -96,3 +97,14 @@ pluginBundle {
                }
        }
 }
+
+publishing {
+       publications {
+               offlineDependencyPlugin (MavenPublication) {
+                       from    components.java
+                       groupId    project.group
+                       artifactId    "offline-dependencies-plugin"
+                       version    project.version
+               }
+       }
+}
\ No newline at end of file

Use the plugin in Beam

suztomo-macbookpro44% git diff origin/master
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 90f556272f..d59878d987 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -25,6 +25,7 @@ plugins {
 
 // Define the set of repositories required to fetch and enable plugins.
 repositories {
+  mavenLocal()
   jcenter()
   maven { url "https://plugins.gradle.org/m2/" }
   maven {
@@ -51,7 +52,7 @@ dependencies {
   runtime "com.github.jengelman.gradle.plugins:shadow:4.0.3"                                          // Enable shading Java dependencies
   runtime "ca.coglinc:javacc-gradle-plugin:2.4.0"                                                     // Enable the JavaCC parser generator
   runtime "net.linguica.gradle:maven-settings-plugin:0.5"
-  runtime "gradle.plugin.io.pry.gradle.offline_dependencies:gradle-offline-dependencies-plugin:0.5.0" // Enable creating an offline repository
+  runtime "io.pry.gradle.offline_dependencies:offline-dependencies-plugin:0.6.0-SNAPSHOT" // Enable creating an offline repository
   runtime "net.ltgt.gradle:gradle-errorprone-plugin:1.1.1"                                           // Enable errorprone Java static analysis
   runtime "org.ajoberstar.grgit:grgit-gradle:3.0.0"                                                   // Enable website git publish to asf-site branch
   runtime "com.avast.gradle:gradle-docker-compose-plugin:0.8.8"                                       // Enable docker compose tasks

Run the plugin. I use BOM to specify gax version.

suztomo-macbookpro44% rm -rf /tmp/offline-plugin
suztomo-macbookpro44% ./gradlew --stacktrace :sdks:java:io:google-cloud-platform:updateOfflineRepository -PofflineRepositoryRoot=/tmp/offline-plugin
Configuration on demand is an incubating feature.

> Task :sdks:java:io:google-cloud-platform:updateOfflineRepository
1 problem was encountered while building the effective model for com.google.flogger:flogger:0.5.1
[FATAL] 'dependencies.dependency. com.google.flogger:flogger:0.5.1' for com.google.flogger:flogger:0.5.1 is referencing itself. @ 
: [[FATAL] 'dependencies.dependency. com.google.flogger:flogger:0.5.1' for com.google.flogger:flogger:0.5.1 is referencing itself. @ com.google.flogger:flogger:0.5.1]

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.2.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 6s
1 actionable task: 1 executed

Confirmed the downloaded artifacts including nested BOMs.

suztomo-macbookpro44% find /tmp/offline-plugin -name 'gax*'         
/tmp/offline-plugin/com/google/api/gax-grpc
/tmp/offline-plugin/com/google/api/gax-grpc/1.52.0/gax-grpc-1.52.0.jar
/tmp/offline-plugin/com/google/api/gax-grpc/1.52.0/gax-grpc-1.52.0.pom
/tmp/offline-plugin/com/google/api/gax-grpc/1.53.0/gax-grpc-1.53.0.pom
/tmp/offline-plugin/com/google/api/gax-grpc/1.53.0/gax-grpc-1.53.0.jar
/tmp/offline-plugin/com/google/api/gax-grpc/1.53.1/gax-grpc-1.53.1.pom
/tmp/offline-plugin/com/google/api/gax-grpc/1.53.1/gax-grpc-1.53.1.jar
/tmp/offline-plugin/com/google/api/gax-grpc/1.54.0/gax-grpc-1.54.0.jar
/tmp/offline-plugin/com/google/api/gax-grpc/1.54.0/gax-grpc-1.54.0.pom
/tmp/offline-plugin/com/google/api/gax
/tmp/offline-plugin/com/google/api/gax/1.52.0/gax-1.52.0.jar
/tmp/offline-plugin/com/google/api/gax/1.52.0/gax-1.52.0.pom
/tmp/offline-plugin/com/google/api/gax/1.56.0/gax-1.56.0.jar
/tmp/offline-plugin/com/google/api/gax/1.56.0/gax-1.56.0.pom
/tmp/offline-plugin/com/google/api/gax/1.53.0/gax-1.53.0.pom
/tmp/offline-plugin/com/google/api/gax/1.53.0/gax-1.53.0.jar
/tmp/offline-plugin/com/google/api/gax/1.53.1/gax-1.53.1.pom
/tmp/offline-plugin/com/google/api/gax/1.53.1/gax-1.53.1.jar
/tmp/offline-plugin/com/google/api/gax/1.54.0/gax-1.54.0.jar
/tmp/offline-plugin/com/google/api/gax/1.54.0/gax-1.54.0.pom
/tmp/offline-plugin/com/google/api/gax-httpjson
/tmp/offline-plugin/com/google/api/gax-httpjson/0.70.1/gax-httpjson-0.70.1.pom
/tmp/offline-plugin/com/google/api/gax-httpjson/0.70.1/gax-httpjson-0.70.1.jar
/tmp/offline-plugin/com/google/api/gax-httpjson/0.69.0/gax-httpjson-0.69.0.pom
/tmp/offline-plugin/com/google/api/gax-httpjson/0.69.0/gax-httpjson-0.69.0.jar
/tmp/offline-plugin/com/google/api/gax-bom
/tmp/offline-plugin/com/google/api/gax-bom/1.51.0/gax-bom-1.51.0.pom
/tmp/offline-plugin/com/google/api/gax-bom/1.52.0/gax-bom-1.52.0.pom
/tmp/offline-plugin/com/google/api/gax-bom/1.56.0/gax-bom-1.56.0.pom
/tmp/offline-plugin/com/google/api/gax-bom/1.53.0/gax-bom-1.53.0.pom
/tmp/offline-plugin/com/google/api/gax-bom/1.53.1/gax-bom-1.53.1.pom
/tmp/offline-plugin/com/google/api/gax-bom/1.54.0/gax-bom-1.54.0.pom
suztomo-macbookpro44% find /tmp/offline-plugin -name 'google-*-bom*'
/tmp/offline-plugin/com/google/auth/google-auth-library-bom
/tmp/offline-plugin/com/google/auth/google-auth-library-bom/0.20.0/google-auth-library-bom-0.20.0.pom
/tmp/offline-plugin/com/google/auth/google-auth-library-bom/0.19.0/google-auth-library-bom-0.19.0.pom
/tmp/offline-plugin/com/google/oauth-client/google-oauth-client-bom
/tmp/offline-plugin/com/google/oauth-client/google-oauth-client-bom/1.30.4/google-oauth-client-bom-1.30.4.pom
/tmp/offline-plugin/com/google/oauth-client/google-oauth-client-bom/1.30.5/google-oauth-client-bom-1.30.5.pom
/tmp/offline-plugin/com/google/api-client/google-api-client-bom
/tmp/offline-plugin/com/google/api-client/google-api-client-bom/1.30.7/google-api-client-bom-1.30.7.pom
/tmp/offline-plugin/com/google/api-client/google-api-client-bom/1.30.6/google-api-client-bom-1.30.6.pom
/tmp/offline-plugin/com/google/api-client/google-api-client-bom/1.30.8/google-api-client-bom-1.30.8.pom
/tmp/offline-plugin/com/google/http-client/google-http-client-bom
/tmp/offline-plugin/com/google/http-client/google-http-client-bom/1.34.1/google-http-client-bom-1.34.1.pom
/tmp/offline-plugin/com/google/http-client/google-http-client-bom/1.34.0/google-http-client-bom-1.34.0.pom
/tmp/offline-plugin/com/google/http-client/google-http-client-bom/1.33.0/google-http-client-bom-1.33.0.pom
/tmp/offline-plugin/com/google/http-client/google-http-client-bom/1.34.2/google-http-client-bom-1.34.2.pom
/tmp/offline-plugin/com/google/http-client/google-http-client-bom/1.32.1/google-http-client-bom-1.32.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-servicedirectory-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-servicedirectory-bom/0.1.1/google-cloud-servicedirectory-bom-0.1.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-errorreporting-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-errorreporting-bom/0.119.2-beta/google-cloud-errorreporting-bom-0.119.2-beta.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-datacatalog-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-datacatalog-bom/0.35.0/google-cloud-datacatalog-bom-0.35.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-phishingprotection-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-phishingprotection-bom/0.28.4/google-cloud-phishingprotection-bom-0.28.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-container-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-container-bom/1.0.4/google-cloud-container-bom-1.0.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-document-ai-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-document-ai-bom/0.1.1/google-cloud-document-ai-bom-0.1.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-talent-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-talent-bom/0.36.1/google-cloud-talent-bom-0.36.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-memcache-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-memcache-bom/0.1.2/google-cloud-memcache-bom-0.1.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigquerystorage-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigquerystorage-bom/0.130.0-beta/google-cloud-bigquerystorage-bom-0.130.0-beta.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-iot-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-iot-bom/1.0.2/google-cloud-iot-bom-1.0.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-asset-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-asset-bom/1.2.0/google-cloud-asset-bom-1.2.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-video-intelligence-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-video-intelligence-bom/1.2.1/google-cloud-video-intelligence-bom-1.2.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-trace-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-trace-bom/1.0.3/google-cloud-trace-bom-1.0.3.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-vision-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-vision-bom/1.99.3/google-cloud-vision-bom-1.99.3.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-securitycenter-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-securitycenter-bom/0.121.0/google-cloud-securitycenter-bom-0.121.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-firestore-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-firestore-bom/1.33.0/google-cloud-firestore-bom-1.33.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-containeranalysis-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-containeranalysis-bom/0.120.0-beta/google-cloud-containeranalysis-bom-0.120.0-beta.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-datalabeling-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-datalabeling-bom/0.118.2/google-cloud-datalabeling-bom-0.118.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-datastore-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-datastore-bom/1.102.4/google-cloud-datastore-bom-1.102.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-dlp-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-dlp-bom/1.1.3/google-cloud-dlp-bom-1.1.3.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-dialogflow-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-dialogflow-bom/1.0.0/google-cloud-dialogflow-bom-1.0.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-dataproc-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-dataproc-bom/0.122.1/google-cloud-dataproc-bom-0.122.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-irm-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-irm-bom/0.2.1/google-cloud-irm-bom-0.2.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-secretmanager-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-secretmanager-bom/1.0.1/google-cloud-secretmanager-bom-1.0.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-translate-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-translate-bom/1.94.5/google-cloud-translate-bom-1.94.5.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-redis-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-redis-bom/1.0.0/google-cloud-redis-bom-1.0.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-billing-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-billing-bom/1.0.2/google-cloud-billing-bom-1.0.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-logging-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-logging-bom/1.101.1/google-cloud-logging-bom-1.101.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-spanner-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-spanner-bom/1.53.0/google-cloud-spanner-bom-1.53.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-pubsub-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-pubsub-bom/1.105.0/google-cloud-pubsub-bom-1.105.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-recaptchaenterprise-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-recaptchaenterprise-bom/0.30.1/google-cloud-recaptchaenterprise-bom-0.30.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-speech-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-speech-bom/1.23.0/google-cloud-speech-bom-1.23.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-tasks-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-tasks-bom/1.29.1/google-cloud-tasks-bom-1.29.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable-bom/1.11.0/google-cloud-bigtable-bom-1.11.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable-bom/1.9.1/google-cloud-bigtable-bom-1.9.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-language-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-language-bom/1.100.0/google-cloud-language-bom-1.100.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-scheduler-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-scheduler-bom/1.22.4/google-cloud-scheduler-bom-1.22.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-webrisk-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-webrisk-bom/0.33.3/google-cloud-webrisk-bom-0.33.3.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-monitoring-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-monitoring-bom/1.100.1/google-cloud-monitoring-bom-1.100.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigquerydatatransfer-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigquerydatatransfer-bom/0.127.0-beta/google-cloud-bigquerydatatransfer-bom-0.127.0-beta.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-core-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-core-bom/1.93.4/google-cloud-core-bom-1.93.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-core-bom/1.92.0/google-cloud-core-bom-1.92.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-core-bom/1.92.1/google-cloud-core-bom-1.92.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-gameservices-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-gameservices-bom/0.19.1/google-cloud-gameservices-bom-0.19.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-kms-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-kms-bom/1.38.1/google-cloud-kms-bom-1.38.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-accessapproval-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-accessapproval-bom/0.1.2/google-cloud-accessapproval-bom-0.1.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-os-login-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-os-login-bom/1.0.2/google-cloud-os-login-bom-1.0.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-billingbudgets-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-billingbudgets-bom/0.2.4/google-cloud-billingbudgets-bom-0.2.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-iamcredentials-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-iamcredentials-bom/1.0.2/google-cloud-iamcredentials-bom-1.0.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-bom/0.125.0/google-cloud-bom-0.125.0.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable-deps-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable-deps-bom/1.9.1/google-cloud-bigtable-deps-bom-1.9.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-texttospeech-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-texttospeech-bom/1.0.2/google-cloud-texttospeech-bom-1.0.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-mediatranslation-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-mediatranslation-bom/0.1.2/google-cloud-mediatranslation-bom-0.1.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-websecurityscanner-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-websecurityscanner-bom/0.116.3/google-cloud-websecurityscanner-bom-0.116.3.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-monitoring-dashboard-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-monitoring-dashboard-bom/0.1.4/google-cloud-monitoring-dashboard-bom-0.1.4.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-automl-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-automl-bom/1.1.2/google-cloud-automl-bom-1.1.2.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-build-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-build-bom/1.1.1/google-cloud-build-bom-1.1.1.pom
/tmp/offline-plugin/com/google/cloud/google-cloud-recommender-bom
/tmp/offline-plugin/com/google/cloud/google-cloud-recommender-bom/0.4.1/google-cloud-recommender-bom-0.4.1.pom
suztomo-macbookpro44%

Try other modules to find any problems

suztomo-macbookpro44% ./gradlew \
    :model:fn-execution:updateOfflineRepository \
    :model:job-management:updateOfflineRepository \
    :model:pipeline:updateOfflineRepository \
    :sdks:java:core:updateOfflineRepository \
    :sdks:java:extensions:google-cloud-platform-core:updateOfflineRepository \
    :sdks:java:extensions:join-library:updateOfflineRepository \
    :sdks:java:extensions:protobuf:updateOfflineRepository \
    :sdks:java:extensions:sql:updateOfflineRepository \
    :sdks:java:extensions:sql:datacatalog:updateOfflineRepository \
    :sdks:java:extensions:sql:zetasql:updateOfflineRepository \
    :sdks:java:fn-execution:updateOfflineRepository \
    :sdks:java:harness:updateOfflineRepository \
    :sdks:java:io:google-cloud-platform:updateOfflineRepository \
    :sdks:java:io:kafka:updateOfflineRepository \
    :sdks:java:io:mongodb:updateOfflineRepository \
    :sdks:java:io:parquet:updateOfflineRepository \
    :sdks:java:testing:nexmark:updateOfflineRepository \
    :runners:core-construction-java:updateOfflineRepository \
    :runners:core-java:updateOfflineRepository \
    :runners:direct-java:updateOfflineRepository \
    :runners:google-cloud-dataflow-java:updateOfflineRepository \
    :runners:google-cloud-dataflow-java:worker:updateOfflineRepository \
    :runners:java-fn-execution:updateOfflineRepository \
    :runners:local-java:updateOfflineRepository \
    :examples:java:updateOfflineRepository \
    :vendor:bytebuddy-1_10_8:updateOfflineRepository\
    :vendor:grpc-1_26_0:updateOfflineRepository \
    :vendor:guava-26_0-jre:updateOfflineRepository\
    :vendor:sdks-java-extensions-protobuf:updateOfflineRepository \
    --no-parallel \
    -PofflineRepositoryRoot=/tmp/offline-plugin

When I tried to build the project, it failed because of unresolved dependencies.

Code change: https://github.com/suztomo/beam/pull/new/bom_offline_dependencies_plugin

  1. The error implies that Gradle was trying to get artifacts listed in the BOM even when Beam does not use it. For example,
suztomo-macbookpro44% ./gradlew --offline :runners:google-cloud-dataflow-java:compileJava
Configuration on demand is an incubating feature.
> Task :sdks:java:io:google-cloud-platform:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':sdks:java:io:google-cloud-platform:compileJava'.
> Could not resolve all files for configuration ':sdks:java:io:google-cloud-platform:compileClasspath'.
   > Could not find com.google.cloud:google-cloud-bigquery:1.108.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigquery/1.108.0/google-cloud-bigquery-1.108.0.pom
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigquery/1.108.0/google-cloud-bigquery-1.108.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.cloud:google-cloud-core-http:1.93.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-core-http/1.93.0/google-cloud-core-http-1.93.0.pom
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-core-http/1.93.0/google-cloud-core-http-1.93.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.cloud:google-cloud-bigtable:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable/1.10.0/google-cloud-bigtable-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable/1.10.0/google-cloud-bigtable-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-admin-v2/1.10.0/grpc-google-cloud-bigtable-admin-v2-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-admin-v2/1.10.0/grpc-google-cloud-bigtable-admin-v2-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-v2/1.10.0/grpc-google-cloud-bigtable-v2-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-v2/1.10.0/grpc-google-cloud-bigtable-v2-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-bigtable-admin-v2/1.10.0/proto-google-cloud-bigtable-admin-v2-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-bigtable-admin-v2/1.10.0/proto-google-cloud-bigtable-admin-v2-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.http-client:google-http-client-protobuf:1.34.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/http-client/google-http-client-protobuf/1.34.0/google-http-client-protobuf-1.34.0.pom
       - file:/tmp/offline-plugin/com/google/http-client/google-http-client-protobuf/1.34.0/google-http-client-protobuf-1.34.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:1.49.2.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-admin-instance-v1/1.49.2/proto-google-cloud-spanner-admin-instance-v1-1.49.2.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-admin-instance-v1/1.49.2/proto-google-cloud-spanner-admin-instance-v1-1.49.2.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.api.grpc:proto-google-cloud-spanner-v1:1.49.2.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-v1/1.49.2/proto-google-cloud-spanner-v1-1.49.2.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-v1/1.49.2/proto-google-cloud-spanner-v1-1.49.2.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:libraries-bom:4.2.0
   > Could not find com.google.cloud:google-cloud-bigquery:1.108.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigquery/1.108.0/google-cloud-bigquery-1.108.0.pom
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigquery/1.108.0/google-cloud-bigquery-1.108.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:google-cloud-bigquerystorage:0.125.0-beta
   > Could not find com.google.cloud:google-cloud-bigtable:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable/1.10.0/google-cloud-bigtable-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-bigtable/1.10.0/google-cloud-bigtable-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud.bigtable:bigtable-client-core:1.13.0
   > Could not find com.google.api.grpc:grpc-google-cloud-bigtable-v2:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-v2/1.10.0/grpc-google-cloud-bigtable-v2-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-v2/1.10.0/grpc-google-cloud-bigtable-v2-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud.bigtable:bigtable-client-core:1.13.0
   > Could not find com.google.api.grpc:proto-google-cloud-bigtable-admin-v2:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-bigtable-admin-v2/1.10.0/proto-google-cloud-bigtable-admin-v2-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-bigtable-admin-v2/1.10.0/proto-google-cloud-bigtable-admin-v2-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud.bigtable:bigtable-client-core:1.13.0
   > Could not find com.google.api.grpc:grpc-google-cloud-bigtable-admin-v2:1.10.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-admin-v2/1.10.0/grpc-google-cloud-bigtable-admin-v2-1.10.0.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/grpc-google-cloud-bigtable-admin-v2/1.10.0/grpc-google-cloud-bigtable-admin-v2-1.10.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud.bigtable:bigtable-client-core:1.13.0
   > Could not find com.google.cloud:google-cloud-core-http:1.93.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-core-http/1.93.0/google-cloud-core-http-1.93.0.pom
       - file:/tmp/offline-plugin/com/google/cloud/google-cloud-core-http/1.93.0/google-cloud-core-http-1.93.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud.bigtable:bigtable-client-core:1.13.0
   > Could not find com.google.http-client:google-http-client-protobuf:1.34.0.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/http-client/google-http-client-protobuf/1.34.0/google-http-client-protobuf-1.34.0.pom
       - file:/tmp/offline-plugin/com/google/http-client/google-http-client-protobuf/1.34.0/google-http-client-protobuf-1.34.0.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud.datastore:datastore-v1-proto-client:1.6.3
   > Could not find com.google.api.grpc:proto-google-cloud-spanner-admin-instance-v1:1.49.2.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-admin-instance-v1/1.49.2/proto-google-cloud-spanner-admin-instance-v1-1.49.2.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-admin-instance-v1/1.49.2/proto-google-cloud-spanner-admin-instance-v1-1.49.2.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:google-cloud-spanner:1.49.1
   > Could not find com.google.api.grpc:proto-google-cloud-spanner-v1:1.49.2.
     Searched in the following locations:
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-v1/1.49.2/proto-google-cloud-spanner-v1-1.49.2.pom
       - file:/tmp/offline-plugin/com/google/api/grpc/proto-google-cloud-spanner-v1/1.49.2/proto-google-cloud-spanner-v1-1.49.2.jar
     Required by:
         project :sdks:java:io:google-cloud-platform > com.google.cloud:google-cloud-spanner:1.49.1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.2.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 4s
45 actionable tasks: 1 executed, 44 up-to-date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment