Nomenclature

La nomenclature 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

Ajoutez la BOM à <dependencyManagement> et déclarez google-ads dans votre fichier 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>

Configuration de Gradle

Gradle 5.0 et versions ultérieures permettent d'importer une BOM de manière native à l'aide de platform().

Dans le DSL 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'

Dans le DSL 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")

Déclarer les dépendances couvertes par la BOM

La nomenclature 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 le DSL Groovy Gradle (build.gradle) :

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

Dans le DSL Kotlin Gradle (build.gradle.kts) :

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.