lista de materiales

La lista de materiales (BOM) de la API de Google Ads administra las versiones de las dependencias para evitar conflictos con bibliotecas como Guava y GAX, que también usan otros frameworks. La BOM garantiza que uses las versiones exactas de estas dependencias que se probaron con la biblioteca cliente de Google Ads.

Esta es la forma recomendada de consumir los artefactos de la biblioteca cliente.

Configuración de Maven

Agrega la BOM a <dependencyManagement> y declara google-ads en tu archivo pom.xml:

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

Configuración de Gradle

Gradle 5.0 y versiones posteriores admiten la importación de una BoM de forma nativa con platform().

En el DSL de Groovy (build.gradle):

// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:46.1.0')

// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'

En el DSL de Kotlin (build.gradle.kts):

// Import the Bill of Materials (BOM).
implementation(platform("com.google.api-ads:google-ads-bom:46.1.0"))

// Add the google-ads dependency, without a version.
implementation("com.google.api-ads:google-ads")

Cómo declarar dependencias cubiertas por la BOM

La BOM de la API de Google Ads incluye la administración de versiones para varias bibliotecas comunes, como Guava, Protobuf, GAX y gRPC. Para evitar posibles conflictos de dependencias, no debes especificar una versión cuando declares dependencias que abarca la BoM. La BoM administra automáticamente las versiones de estas bibliotecas, lo que garantiza la compatibilidad.

Por ejemplo, para declarar la dependencia Guava en Maven, usa lo siguiente:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <!-- NO VERSION SPECIFIED -->
</dependency>

En el DSL de Gradle Groovy (build.gradle):

implementation 'com.google.guava:guava' // NO VERSION SPECIFIED

En el DSL de Kotlin de Gradle (build.gradle.kts):

implementation("com.google.guava:guava") // NO VERSION SPECIFIED

Si omites la versión, permites que la BOM la administre, lo que ayuda a evitar problemas causados por versiones de dependencias incompatibles. Los indicadores comunes de conflictos de dependencias incluyen NoSuchMethodError o ClassNotFoundException, que a menudo se pueden resolver si se garantiza que todas las dependencias administradas por la BOM no tengan una versión especificada.