[
https://issues.apache.org/jira/browse/BEAM-9444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tomo Suzuki updated BEAM-9444:
------------------------------
Description:
Shall we use GCP Libraries BOM to specify Google-related library versions?
I've been working on Beam's dependency upgrades in the past few months. I
think it's time to consider a long-term solution to keep the libraries
up-to-date with small maintenance effort. To achieve that, I propose Beam to
use GCP Libraries BOM to set the Google-related library versions, rather than
trying to make changes in each of ~30 Google libraries.
h1. Background
A BOM is pom.xml that provides dependencyManagement to importing projects.
GCP Libraries BOM is a BOM that includes many Google Cloud related libraries +
gRPC + protobuf. We (Google Cloud Java Diamond Dependency team) maintain the
BOM so that the set of the libraries are compatible with each other.
h1. Implementation
{{forcedModules}} via version resolution strategy is playing bad. This causes
{noformat}
A problem occurred evaluating project ':sdks:java:extensions:sql'.
Could not resolve all dependencies for configuration
':sdks:java:extensions:sql:fmppTemplates'.
Invalid format: 'com.google.cloud:google-cloud-core'. Group, name and version
cannot be empty. Correct example: 'org.gradle:gradle-core:1.0'{noformat}
!Screen Shot 2020-03-13 at 13.33.01.png|width=489,height=287!
h1. :sdks:java:maven-archetypes:examples fails
The task requires version for
{code}
'google-http-client.version':
dependencies.create(project.library.java.google_http_client).getVersion(),
{code}
This would generate NullPointerException. Running gradlew without the
subproject:
{code:java}
./gradlew -p sdks/java check -x :sdks:java:maven-archetypes:examples:check
{code}
was:
Shall we use GCP Libraries BOM to specify Google-related library versions?
I've been working on Beam's dependency upgrades in the past few months. I
think it's time to consider a long-term solution to keep the libraries
up-to-date with small maintenance effort. To achieve that, I propose Beam to
use GCP Libraries BOM to set the Google-related library versions, rather than
trying to make changes in each of ~30 Google libraries.
h1. Background
A BOM is pom.xml that provides dependencyManagement to importing projects.
GCP Libraries BOM is a BOM that includes many Google Cloud related libraries +
gRPC + protobuf. We (Google Cloud Java Diamond Dependency team) maintain the
BOM so that the set of the libraries are compatible with each other.
h1. Implementation
{{forcedModules}} via version resolution strategy is playing bad. This causes
{noformat}
A problem occurred evaluating project ':sdks:java:extensions:sql'.
Could not resolve all dependencies for configuration
':sdks:java:extensions:sql:fmppTemplates'.
Invalid format: 'com.google.cloud:google-cloud-core'. Group, name and version
cannot be empty. Correct example: 'org.gradle:gradle-core:1.0'{noformat}
!Screen Shot 2020-03-13 at 13.33.01.png|width=489,height=287!
> Shall we use GCP Libraries BOM to specify Google-related library versions?
> --------------------------------------------------------------------------
>
> Key: BEAM-9444
> URL: https://issues.apache.org/jira/browse/BEAM-9444
> Project: Beam
> Issue Type: Task
> Components: build-system
> Reporter: Tomo Suzuki
> Assignee: Tomo Suzuki
> Priority: Major
> Attachments: Screen Shot 2020-03-13 at 13.33.01.png
>
>
> Shall we use GCP Libraries BOM to specify Google-related library versions?
>
> I've been working on Beam's dependency upgrades in the past few months. I
> think it's time to consider a long-term solution to keep the libraries
> up-to-date with small maintenance effort. To achieve that, I propose Beam to
> use GCP Libraries BOM to set the Google-related library versions, rather than
> trying to make changes in each of ~30 Google libraries.
>
> h1. Background
> A BOM is pom.xml that provides dependencyManagement to importing projects.
>
> GCP Libraries BOM is a BOM that includes many Google Cloud related libraries
> + gRPC + protobuf. We (Google Cloud Java Diamond Dependency team) maintain
> the BOM so that the set of the libraries are compatible with each other.
>
> h1. Implementation
> {{forcedModules}} via version resolution strategy is playing bad. This causes
>
> {noformat}
> A problem occurred evaluating project ':sdks:java:extensions:sql'.
> Could not resolve all dependencies for configuration
> ':sdks:java:extensions:sql:fmppTemplates'.
> Invalid format: 'com.google.cloud:google-cloud-core'. Group, name and version
> cannot be empty. Correct example: 'org.gradle:gradle-core:1.0'{noformat}
> !Screen Shot 2020-03-13 at 13.33.01.png|width=489,height=287!
>
> h1. :sdks:java:maven-archetypes:examples fails
> The task requires version for
> {code}
> 'google-http-client.version':
> dependencies.create(project.library.java.google_http_client).getVersion(),
> {code}
> This would generate NullPointerException. Running gradlew without the
> subproject:
>
> {code:java}
> ./gradlew -p sdks/java check -x :sdks:java:maven-archetypes:examples:check
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)