Bill of Materials

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 persis dependensi ini yang telah diuji dengan library klien Google Ads.

Ini adalah cara yang direkomendasikan untuk menggunakan artefak library klien.

Konfigurasi Maven {#maven-configuration}

Dependensi Maven adalah:

<!-- 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>41.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

Dependensi Gradle adalah:

// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:41.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 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 dicakup oleh 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>

Dan di Gradle:

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.