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 {#maven-configuration}
La dependencia de Maven es la siguiente:
<!-- 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>
Configuración de Gradle
La dependencia de Gradle es la siguiente:
// 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'
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 dependencia, no debes especificar una versión cuando declares dependencias que abarque 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>
Y en Gradle:
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.