Maven Bill of Materials for Protocol Buffers Java libraries providing dependency version management
npx @tessl/cli install tessl/maven-com-google-protobuf--protobuf-bom@4.31.0Protocol Buffers BOM (Bill of Materials) is a Maven dependency management artifact that provides version coordination for Protocol Buffers Java libraries. It ensures compatible versions across protobuf-java, protobuf-java-util, and protobuf-kotlin artifacts, simplifying dependency management for Java projects using Protocol Buffers.
<dependencyManagement> sectionImport the BOM in your Maven project's dependency management section:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-bom</artifactId>
<version>4.31.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>After importing the BOM, declare Protocol Buffers dependencies without specifying versions:
<dependencies>
<!-- Core Protocol Buffers Java library -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<!-- version inherited from BOM -->
</dependency>
<!-- Protocol Buffers utilities (JsonFormat, etc.) -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<!-- version inherited from BOM -->
</dependency>
<!-- Protocol Buffers Kotlin support -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-kotlin</artifactId>
<!-- version inherited from BOM -->
</dependency>
</dependencies>Coordinates versions for all Protocol Buffers Java libraries to ensure compatibility.
<!-- BOM Import Configuration -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-bom</artifactId>
<version>4.31.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>The BOM manages versions for the following Protocol Buffers artifacts:
<!-- Managed: Core Protocol Buffers Java Runtime -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<!-- version: 4.31.1 -->
</dependency>
<!-- Managed: Protocol Buffers Java Utilities -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<!-- version: 4.31.1 -->
</dependency>
<!-- Managed: Protocol Buffers Kotlin Support -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-kotlin</artifactId>
<!-- version: 4.31.1 -->
</dependency>Ensures all Protocol Buffers artifacts use compatible versions automatically.
<!-- All these dependencies will use version 4.31.1 -->
<dependencies>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-kotlin</artifactId>
</dependency>
</dependencies>Type: Core Runtime Library
Group ID: com.google.protobuf
Artifact ID: protobuf-java
Managed Version: 4.31.1
Description: Core Protocol Buffers Java runtime library providing message serialization and deserialization capabilities.
Type: Utility Library
Group ID: com.google.protobuf
Artifact ID: protobuf-java-util
Managed Version: 4.31.1
Description: Protocol Buffers Java utility library including JsonFormat for JSON serialization and other helpful utilities.
Type: Kotlin Language Bindings
Group ID: com.google.protobuf
Artifact ID: protobuf-kotlin
Managed Version: 4.31.1
Description: Protocol Buffers Kotlin language bindings providing idiomatic Kotlin APIs for Protocol Buffers usage.
The following Protocol Buffers artifacts are available but are NOT managed by this BOM and require explicit version specification:
Group ID: com.google.protobuf
Artifact ID: protobuf-javalite
Description: Lightweight Protocol Buffers Java runtime optimized for Android and resource-constrained environments. Smaller size but with limited reflection capabilities.
Usage:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-javalite</artifactId>
<version>4.31.1</version> <!-- explicit version required -->
</dependency>Group ID: com.google.protobuf
Artifact ID: protobuf-kotlin-lite
Description: Lightweight Protocol Buffers Kotlin language bindings optimized for Android and resource-constrained environments.
Usage:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-kotlin-lite</artifactId>
<version>4.31.1</version> <!-- explicit version required -->
</dependency><!-- Project Coordinates -->
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-bom</artifactId>
<version>4.31.1</version>
<packaging>pom</packaging>
<!-- Project Information -->
<name>Protocol Buffers [BOM]</name>
<description>A compatible set of open source libraries for working with protocol buffers.</description>
<url>https://developers.google.com/protocol-buffers/</url>
<!-- Organization -->
<organization>
<name>Google LLC</name>
<url>https://protobuf.dev</url>
</organization>
<!-- License -->
<license>
<name>BSD-3-Clause</name>
<url>https://opensource.org/licenses/BSD-3-Clause</url>
</license>
<!-- Source Control -->
<scm>
<url>https://github.com/protocolbuffers/protobuf</url>
<connection>scm:git:https://github.com/protocolbuffers/protobuf.git</connection>
</scm>