Bill of Materials (BOM) Google Ads API mengelola versi dependensi
untuk menghindari konflik dependensi dengan library seperti Guava dan GAX
yang juga digunakan oleh framework lain. BOM memastikan Anda menggunakan versi dependensi yang sama yang telah diuji dengan library klien Google Ads.
Ini adalah cara yang direkomendasikan untuk menggunakan artefak library klien.
Konfigurasi Maven
Tambahkan BOM ke <dependencyManagement> dan deklarasikan google-ads di file
pom.xml Anda:
<!-- Import the Bill of Materials (BOM) to ensure you're using compatible
versions of all google-ads libraries. -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>google-ads-bom</artifactId>
<version>48.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Add the google-ads dependency, without a version. The version is
managed by the BOM. -->
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>google-ads</artifactId>
</dependency>
Konfigurasi Gradle
Gradle 5.0 dan yang lebih baru mendukung impor BOM secara native menggunakan platform().
Di Groovy DSL (build.gradle):
// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:48.0.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
Di Kotlin DSL (build.gradle.kts):
// Import the Bill of Materials (BOM).
implementation(platform("com.google.api-ads:google-ads-bom:48.0.0"))
// Add the google-ads dependency, without a version.
implementation("com.google.api-ads:google-ads")
Mendeklarasikan dependensi yang tercakup dalam BOM
BOM Google Ads API mencakup pengelolaan versi untuk beberapa
library umum, seperti Guava, Protobuf, GAX, dan gRPC. Untuk menghindari potensi konflik dependensi, Anda tidak boleh menentukan versi saat mendeklarasikan dependensi yang tercakup dalam BOM. BOM secara otomatis mengelola versi untuk library ini, sehingga memastikan kompatibilitas.
Misalnya, untuk mendeklarasikan dependensi Guava di Maven, gunakan kode berikut:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<!-- NO VERSION SPECIFIED -->
</dependency>
Di Gradle Groovy DSL (build.gradle):
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
Di Gradle Kotlin DSL (build.gradle.kts):
implementation("com.google.guava:guava") // NO VERSION SPECIFIED
Dengan menghilangkan versi, Anda mengizinkan BOM untuk mengelolanya, yang membantu mencegah masalah yang disebabkan oleh versi dependensi yang tidak kompatibel. Indikator umum konflik dependensi mencakup NoSuchMethodError atau ClassNotFoundException, yang sering kali dapat diselesaikan dengan memastikan semua dependensi yang dikelola BOM tidak memiliki versi yang ditentukan.