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 nomenclature 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>44.0.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 Gradle
La dépendance Gradle est la suivante :
// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:44.0.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
Déclarer les dépendances couvertes par la nomenclature
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 les conflits de dépendances potentiels, vous ne devez pas spécifier de version lorsque vous déclarez des dépendances couvertes par la nomenclature.
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 le code suivant :
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<!-- NO VERSION SPECIFIED -->
</dependency>
Et dans Gradle :
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
En omettant la version, vous laissez la nomenclature 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 veillant à ce qu'aucune version ne soit spécifiée pour toutes les dépendances gérées par la nomenclature.