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 yang tepat dari dependensi ini 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 dalam
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>47.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 pengimporan 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:47.0.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
Di DSL Kotlin (build.gradle.kts):
// Import the Bill of Materials (BOM).
implementation(platform("com.google.api-ads:google-ads-bom:47.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
kemungkinan konflik dependensi, Anda tidak boleh menentukan versi saat
mendeklarasikan dependensi yang dicakup oleh 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 membiarkan BOM 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.