Nomenclature

La nomenclature (BOM) de l'API Google Ads gère les versions des dépendances pour éviter les conflits de dépendances avec des bibliothèques telles que Guava et GAX, qui sont également utilisées par d'autres frameworks. La BOM vous permet d'utiliser les versions exactes de ces dépendances qui ont été testées avec la bibliothèque cliente Google Ads.

Il s'agit de la méthode recommandée pour utiliser les artefacts de la bibliothèque cliente.

Configuration Maven {#maven-configuration}

La dépendance Maven est la suivante :

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

Configuration de Gradle

La dépendance Gradle est la suivante :

// 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'

Déclarer les dépendances couvertes par la BOM

La BOM de l'API Google Ads inclut la gestion des versions pour plusieurs bibliothèques courantes, telles que Guava, Protobuf, GAX et gRPC. Pour éviter d'éventuels conflits de dépendances, vous ne devez pas spécifier de version lorsque vous déclarez des dépendances couvertes par la BOM. La nomenclature gère automatiquement les versions de ces bibliothèques, ce qui garantit la compatibilité.

Par exemple, pour déclarer la dépendance Guava dans Maven, utilisez ce qui suit :

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

Dans Gradle :

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

En omettant la version, vous laissez la BOM la gérer, ce qui permet d'éviter les problèmes causés par des versions de dépendances incompatibles. Les indicateurs courants de conflits de dépendances incluent NoSuchMethodError ou ClassNotFoundException, qui peuvent souvent être résolus en s'assurant qu'aucune version n'est spécifiée pour toutes les dépendances gérées par BOM.