Skip to content

Commit e045fc6

Browse files
mkruskal-googlecopybara-github
authored andcommitted
Split maven dependencies into dev vs local (#20549)
Closes #20549 COPYBARA_INTEGRATE_REVIEW=#20549 from protocolbuffers:maven-split a8b30b4 PiperOrigin-RevId: 733361548
1 parent 716d062 commit e045fc6

File tree

10 files changed

+1462
-1175
lines changed

10 files changed

+1462
-1175
lines changed

.github/workflows/test_bazel.yml

Lines changed: 11 additions & 0 deletions
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

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,11 @@ crate.spec(
9292
crate.from_specs()
9393
use_repo(crate, crate_index = "crates")
9494

95-
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven", dev_dependency = True)
96-
maven.install(
95+
protobuf_maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven", dev_dependency = True)
96+
protobuf_maven.install(
9797
name = "protobuf_maven",
9898
artifacts = [
9999
"com.google.caliper:caliper:1.0-beta-3",
100-
"com.google.code.findbugs:jsr305:3.0.2",
101-
"com.google.code.gson:gson:2.8.9",
102-
"com.google.errorprone:error_prone_annotations:2.5.1",
103-
"com.google.j2objc:j2objc-annotations:2.8",
104-
"com.google.guava:guava:32.0.1-jre",
105100
"com.google.guava:guava-testlib:32.0.1-jre",
106101
"com.google.testparameterinjector:test-parameter-injector:1.18",
107102
"com.google.truth:truth:1.1.2",
@@ -115,7 +110,24 @@ maven.install(
115110
"https://repo.maven.apache.org/maven2",
116111
],
117112
)
118-
use_repo(maven, "protobuf_maven")
113+
use_repo(protobuf_maven, "protobuf_maven")
114+
115+
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
116+
maven.install(
117+
name = "maven",
118+
artifacts = [
119+
"com.google.code.findbugs:jsr305:3.0.2",
120+
"com.google.code.gson:gson:2.8.9",
121+
"com.google.errorprone:error_prone_annotations:2.5.1",
122+
"com.google.j2objc:j2objc-annotations:2.8",
123+
"com.google.guava:guava:32.0.1-jre",
124+
],
125+
repositories = [
126+
"https://repo1.maven.org/maven2",
127+
"https://repo.maven.apache.org/maven2",
128+
],
129+
)
130+
use_repo(maven, "maven")
119131

120132
# Development dependencies
121133
bazel_dep(name = "googletest", version = "1.14.0", dev_dependency = True)

WORKSPACE

Lines changed: 27 additions & 3 deletions
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

Lines changed: 3 additions & 2 deletions
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

Lines changed: 8 additions & 2 deletions
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

Lines changed: 17 additions & 1 deletion
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

Lines changed: 5 additions & 5 deletions
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)