diff --git a/BUILD b/BUILD
index a0c93676a0..37030da861 100644
--- a/BUILD
+++ b/BUILD
@@ -293,12 +293,45 @@ WELL_KNOWN_PROTO_MAP = {
WELL_KNOWN_PROTOS = [value[0] for value in WELL_KNOWN_PROTO_MAP.values()]
+LITE_WELL_KNOWN_PROTO_MAP = {
+ "any": ("src/google/protobuf/any.proto", []),
+ "api": (
+ "src/google/protobuf/api.proto",
+ [
+ "source_context",
+ "type",
+ ],
+ ),
+ "duration": ("src/google/protobuf/duration.proto", []),
+ "empty": ("src/google/protobuf/empty.proto", []),
+ "field_mask": ("src/google/protobuf/field_mask.proto", []),
+ "source_context": ("src/google/protobuf/source_context.proto", []),
+ "struct": ("src/google/protobuf/struct.proto", []),
+ "timestamp": ("src/google/protobuf/timestamp.proto", []),
+ "type": (
+ "src/google/protobuf/type.proto",
+ [
+ "any",
+ "source_context",
+ ],
+ ),
+ "wrappers": ("src/google/protobuf/wrappers.proto", []),
+}
+
+LITE_WELL_KNOWN_PROTOS = [value[0] for value in LITE_WELL_KNOWN_PROTO_MAP.values()]
+
filegroup(
name = "well_known_protos",
srcs = WELL_KNOWN_PROTOS,
visibility = ["//visibility:public"],
)
+filegroup(
+ name = "lite_well_known_protos",
+ srcs = LITE_WELL_KNOWN_PROTOS,
+ visibility = ["//visibility:public"],
+)
+
adapt_proto_library(
name = "cc_wkt_protos_genproto",
deps = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()],
@@ -747,7 +780,7 @@ internal_gen_well_known_protos_java(
internal_gen_well_known_protos_java(
name = "gen_well_known_protos_javalite",
- deps = [proto + "_proto" for proto in WELL_KNOWN_PROTO_MAP.keys()],
+ deps = [proto + "_proto" for proto in LITE_WELL_KNOWN_PROTO_MAP.keys()],
javalite = True,
visibility = [
"//java:__subpackages__",
diff --git a/Makefile.am b/Makefile.am
index c1c98a424c..a71f4d117b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -280,6 +280,7 @@ java_EXTRA_DIST=
java/core/generate-sources-build.xml \
java/core/generate-test-sources-build.xml \
java/core/pom.xml \
+ java/core/pom_template.xml \
java/core/src/main/java/com/google/protobuf/AbstractMessage.java \
java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java \
java/core/src/main/java/com/google/protobuf/AbstractParser.java \
@@ -567,6 +568,7 @@ java_EXTRA_DIST=
java/lite/generate-test-sources-build.xml \
java/lite/lite.awk \
java/lite/pom.xml \
+ java/lite/pom_template.xml \
java/lite/process-lite-sources-build.xml \
java/lite/src/test/java/com/google/protobuf/LiteTest.java \
java/lite/src/test/java/com/google/protobuf/Proto2MessageLiteInfoFactory.java \
@@ -574,6 +576,7 @@ java_EXTRA_DIST=
java/pom.xml \
java/util/BUILD \
java/util/pom.xml \
+ java/util/pom_template.xml \
java/util/src/main/java/com/google/protobuf/util/Durations.java \
java/util/src/main/java/com/google/protobuf/util/FieldMaskTree.java \
java/util/src/main/java/com/google/protobuf/util/FieldMaskUtil.java \
diff --git a/WORKSPACE b/WORKSPACE
index 3b78ba193e..94aa8d86b8 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -38,13 +38,13 @@ bind(
load("@rules_jvm_external//:defs.bzl", "maven_install")
maven_install(
artifacts = [
- "com.google.guava:guava:30.1.1-jre",
"com.google.code.gson:gson:2.8.6",
"com.google.errorprone:error_prone_annotations:2.3.2",
+ "com.google.guava:guava:30.1.1-jre",
+ "com.google.truth:truth:1.1.2",
"junit:junit:4.12",
"org.easymock:easymock:3.2",
"org.easymock:easymockclassextension:3.2",
- "com.google.truth:truth:1.1.2",
],
repositories = [
"https://repo1.maven.org/maven2",
diff --git a/java/core/BUILD b/java/core/BUILD
index 4d8895a8ef..e1e14f6564 100644
--- a/java/core/BUILD
+++ b/java/core/BUILD
@@ -1,7 +1,9 @@
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@rules_java//java:defs.bzl", "java_library", "java_proto_library", "java_lite_proto_library")
+load("@rules_jvm_external//:defs.bzl", "java_export")
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
load("//:internal.bzl", "conformance_test")
+load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
load("//java/internal:testing.bzl", "junit_tests")
LITE_SRCS = [
@@ -96,14 +98,19 @@ LITE_SRCS = [
]
# Should be used as `//java/lite`.
-java_library(
+java_export(
name = "lite",
+ maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_VERSION,
+ pom_template = "//java/lite:pom_template.xml",
srcs = LITE_SRCS + [
"//:gen_well_known_protos_javalite"
],
visibility = [
"//java/lite:__pkg__",
],
+ resources = [
+ "//:lite_well_known_protos",
+ ],
)
java_library(
@@ -111,8 +118,10 @@ java_library(
srcs = LITE_SRCS,
)
-java_library(
+java_export(
name = "core",
+ maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_VERSION,
+ pom_template = "pom_template.xml",
srcs = glob(
[
"src/main/java/com/google/protobuf/*.java",
@@ -128,6 +137,9 @@ java_library(
deps = [
":lite_runtime_only",
],
+ resources = [
+ "//:well_known_protos",
+ ],
)
proto_lang_toolchain(
@@ -324,3 +336,4 @@ junit_tests(
"//external:truth",
]
)
+
diff --git a/java/core/pom_template.xml b/java/core/pom_template.xml
new file mode 100644
index 0000000000..2c61281b0d
--- /dev/null
+++ b/java/core/pom_template.xml
@@ -0,0 +1,18 @@
+
+
+ 4.0.0
+
+ {groupId}
+ protobuf-parent
+ {version}
+
+
+ {artifactId}
+ {type}
+
+ Protocol Buffers [Core]
+
+ Core Protocol Buffers library. Protocol Buffers are a way of encoding structured data in an
+ efficient yet extensible format.
+
+
diff --git a/java/lite/BUILD b/java/lite/BUILD
index 639f30879f..35a1368b30 100644
--- a/java/lite/BUILD
+++ b/java/lite/BUILD
@@ -4,6 +4,7 @@ load("//:internal.bzl", "conformance_test")
load("//java/internal:testing.bzl", "junit_tests")
exports_files(["lite.awk"], visibility = ["//java/core:__pkg__"])
+exports_files(["pom_template.xml"], visibility = ["//java/core:__pkg__"])
alias(
name = "lite",
diff --git a/java/lite/pom_template.xml b/java/lite/pom_template.xml
new file mode 100644
index 0000000000..6d705fdcbe
--- /dev/null
+++ b/java/lite/pom_template.xml
@@ -0,0 +1,19 @@
+
+
+ 4.0.0
+
+ {groupId}
+ protobuf-parent
+ {version}
+
+
+ {artifactId}
+ {type}
+
+ Protocol Buffers [Lite]
+
+ Lite version of Protocol Buffers library. This version is optimized for code size, but does
+ not guarantee API/ABI stability.
+
+
+
diff --git a/java/util/BUILD b/java/util/BUILD
index 25853f7167..b66d4b0e30 100644
--- a/java/util/BUILD
+++ b/java/util/BUILD
@@ -1,9 +1,13 @@
-load("@rules_java//java:defs.bzl", "java_library", "java_proto_library")
+load("@rules_java//java:defs.bzl", "java_proto_library")
+load("@rules_jvm_external//:defs.bzl", "java_export")
load("@rules_proto//proto:defs.bzl", "proto_library")
+load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
load("//java/internal:testing.bzl", "junit_tests")
-java_library(
+java_export(
name = "util",
+ maven_coordinates = "com.google.protobuf:protobuf-java-util:%s" % PROTOBUF_VERSION,
+ pom_template = "pom_template.xml",
srcs = glob([
"src/main/java/com/google/protobuf/util/*.java",
]),
@@ -13,7 +17,6 @@ java_library(
"//external:gson",
"//external:guava",
"//java/core",
- "//java/lite",
],
)
diff --git a/java/util/pom_template.xml b/java/util/pom_template.xml
new file mode 100644
index 0000000000..b20e62ad59
--- /dev/null
+++ b/java/util/pom_template.xml
@@ -0,0 +1,18 @@
+
+
+ 4.0.0
+
+ {groupId}
+ protobuf-parent
+ {version}
+
+
+ {artifactId}
+ {type}
+
+ Protocol Buffers [Util]
+ Utilities for Protocol Buffers
+
+ {dependencies}
+
+
diff --git a/protobuf_version.bzl b/protobuf_version.bzl
new file mode 100644
index 0000000000..dd1f797329
--- /dev/null
+++ b/protobuf_version.bzl
@@ -0,0 +1 @@
+PROTOBUF_VERSION = '3.17.3'