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 bahwa Anda menggunakan versi
dependensi yang tepat 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>48.1.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:48.1.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:48.1.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 menyertakan 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 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 DSL Groovy Gradle (build.gradle):
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
Di DSL Kotlin Gradle (build.gradle.kts):
implementation("com.google.guava:guava") // NO VERSION SPECIFIED
Dengan menghilangkan versi, Anda mengizinkan 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.