Skip to content

Commit a5c906a

Browse files
Split maven dependencies into dev vs local (#20549) (#20558)
Closes #20549 COPYBARA_INTEGRATE_REVIEW=#20549 from protocolbuffers:maven-split a8b30b4 PiperOrigin-RevId: 733361548
1 parent 6059cb7 commit a5c906a

10 files changed

+1462
-1175
lines changed

.github/workflows/test_bazel.yml

+11
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,17 @@ jobs:
3939
with:
4040
ref: ${{ inputs.safe-checkout }}
4141

42+
# rules_jvm_external doesn't support Java 8, which is the default version
43+
# on some github runners. When this is selected, it results in some
44+
# opaque errors about coursier (see
45+
# https://github.com/bazel-contrib/rules_jvm_external/issues/1337).
46+
- name: Pin to Java 11
47+
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
48+
if: ${{ !matrix.continuous-only || inputs.continuous-run }}
49+
with:
50+
distribution: 'temurin'
51+
java-version: '11'
52+
4253
- name: Windows startup flags
4354
if: ${{ runner.os == 'Windows' && (!matrix.continuous-only || inputs.continuous-run) }}
4455
working-directory: examples

MODULE.bazel

+20-8
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,11 @@ pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip", dev_depen
8080

8181
use_repo(pip, "protobuf_pip_deps")
8282

83-
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven", dev_dependency = True)
84-
maven.install(
83+
protobuf_maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven", dev_dependency = True)
84+
protobuf_maven.install(
8585
name = "protobuf_maven",
8686
artifacts = [
8787
"com.google.caliper:caliper:1.0-beta-3",
88-
"com.google.code.findbugs:jsr305:3.0.2",
89-
"com.google.code.gson:gson:2.8.9",
90-
"com.google.errorprone:error_prone_annotations:2.5.1",
91-
"com.google.j2objc:j2objc-annotations:2.8",
92-
"com.google.guava:guava:32.0.1-jre",
9388
"com.google.guava:guava-testlib:32.0.1-jre",
9489
"com.google.testparameterinjector:test-parameter-injector:1.18",
9590
"com.google.truth:truth:1.1.2",
@@ -103,7 +98,24 @@ maven.install(
10398
"https://repo.maven.apache.org/maven2",
10499
],
105100
)
106-
use_repo(maven, "protobuf_maven")
101+
use_repo(protobuf_maven, "protobuf_maven")
102+
103+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
104+
maven.install(
105+
name = "maven",
106+
artifacts = [
107+
"com.google.code.findbugs:jsr305:3.0.2",
108+
"com.google.code.gson:gson:2.8.9",
109+
"com.google.errorprone:error_prone_annotations:2.5.1",
110+
"com.google.j2objc:j2objc-annotations:2.8",
111+
"com.google.guava:guava:32.0.1-jre",
112+
],
113+
repositories = [
114+
"https://repo1.maven.org/maven2",
115+
"https://repo.maven.apache.org/maven2",
116+
],
117+
)
118+
use_repo(maven, "maven")
107119

108120
# Development dependencies
109121
bazel_dep(name = "googletest", version = "1.14.0", dev_dependency = True)

WORKSPACE

+27-3
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ rules_jvm_external_setup()
6565
load("@rules_jvm_external//:defs.bzl", "maven_install")
6666

6767
maven_install(
68-
name = "protobuf_maven",
68+
name = "maven",
6969
artifacts = PROTOBUF_MAVEN_ARTIFACTS,
7070
# For updating instructions, see:
7171
# https://github.com/bazelbuild/rules_jvm_external#updating-maven_installjson
@@ -76,10 +76,34 @@ maven_install(
7676
],
7777
)
7878

79-
load("@protobuf_maven//:defs.bzl", "pinned_maven_install")
80-
79+
load("@maven//:defs.bzl", "pinned_maven_install")
8180
pinned_maven_install()
8281

82+
maven_install(
83+
name = "protobuf_maven",
84+
artifacts = [
85+
"com.google.caliper:caliper:1.0-beta-3",
86+
"com.google.guava:guava-testlib:32.0.1-jre",
87+
"com.google.testparameterinjector:test-parameter-injector:1.18",
88+
"com.google.truth:truth:1.1.2",
89+
"junit:junit:4.13.2",
90+
"org.mockito:mockito-core:4.3.1",
91+
"biz.aQute.bnd:biz.aQute.bndlib:6.4.0",
92+
"info.picocli:picocli:4.6.3",
93+
],
94+
# For updating instructions, see:
95+
# https://github.com/bazelbuild/rules_jvm_external#updating-maven_installjson
96+
maven_install_json = "//:maven_dev_install.json",
97+
repositories = [
98+
"https://repo1.maven.org/maven2",
99+
"https://repo.maven.apache.org/maven2",
100+
],
101+
)
102+
103+
load("@protobuf_maven//:defs.bzl", pinned_protobuf_maven_install = "pinned_maven_install")
104+
pinned_protobuf_maven_install()
105+
106+
83107
# For `cc_proto_blacklist_test` and `build_test`.
84108
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
85109

examples/AddPerson.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
// See README.md for information and build instructions.
2-
32
import com.example.tutorial.protos.AddressBook;
43
import com.example.tutorial.protos.Person;
4+
import com.google.protobuf.util.Timestamps;
55
import java.io.BufferedReader;
66
import java.io.FileInputStream;
77
import java.io.FileNotFoundException;
88
import java.io.FileOutputStream;
9-
import java.io.InputStreamReader;
109
import java.io.IOException;
10+
import java.io.InputStreamReader;
1111
import java.io.PrintStream;
1212

1313
class AddPerson {
@@ -51,6 +51,7 @@ static Person PromptForAddress(BufferedReader stdin,
5151
}
5252

5353
person.addPhones(phoneNumber);
54+
person.setLastUpdated(Timestamps.now());
5455
}
5556

5657
return person.build();

examples/BUILD.bazel

+8-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,10 @@ java_binary(
7474
name = "add_person_java",
7575
srcs = ["AddPerson.java"],
7676
main_class = "AddPerson",
77-
deps = [":addressbook_java_proto"],
77+
deps = [
78+
":addressbook_java_proto",
79+
"@com_google_protobuf//java/util",
80+
],
7881
)
7982

8083
java_binary(
@@ -112,7 +115,10 @@ java_binary(
112115
name = "add_person_java_lite",
113116
srcs = ["AddPerson.java"],
114117
main_class = "AddPerson",
115-
deps = [":addressbook_java_lite_proto"],
118+
deps = [
119+
":addressbook_java_lite_proto",
120+
"@com_google_protobuf//java/util",
121+
],
116122
)
117123

118124
java_binary(

examples/WORKSPACE

+17-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ http_archive(
3838
],
3939
)
4040

41-
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
41+
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps", "PROTOBUF_MAVEN_ARTIFACTS")
4242

4343
protobuf_deps()
4444

@@ -59,3 +59,19 @@ load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies", "rules_cc_toolch
5959
rules_cc_dependencies()
6060

6161
rules_cc_toolchains()
62+
63+
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
64+
rules_jvm_external_deps()
65+
66+
load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
67+
rules_jvm_external_setup()
68+
69+
load("@rules_jvm_external//:defs.bzl", "maven_install")
70+
maven_install(
71+
name = "maven",
72+
artifacts = PROTOBUF_MAVEN_ARTIFACTS,
73+
repositories = [
74+
"https://repo1.maven.org/maven2",
75+
"https://repo.maven.apache.org/maven2",
76+
],
77+
)

java/util/BUILD.bazel

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ java_library(
1414
visibility = ["//visibility:public"],
1515
deps = [
1616
"//java/core",
17-
"@protobuf_maven//:com_google_code_findbugs_jsr305",
18-
"@protobuf_maven//:com_google_code_gson_gson",
19-
"@protobuf_maven//:com_google_errorprone_error_prone_annotations",
20-
"@protobuf_maven//:com_google_guava_guava",
21-
"@protobuf_maven//:com_google_j2objc_j2objc_annotations",
17+
"@maven//:com_google_code_findbugs_jsr305",
18+
"@maven//:com_google_code_gson_gson",
19+
"@maven//:com_google_errorprone_error_prone_annotations",
20+
"@maven//:com_google_guava_guava",
21+
"@maven//:com_google_j2objc_j2objc_annotations",
2222
],
2323
)
2424

0 commit comments

Comments
 (0)