La distinta materiali (BOM) dell'API Google Ads gestisce le versioni delle dipendenze
per evitare conflitti di dipendenze con librerie come Guava e GAX
utilizzate anche da altri framework. La BOM garantisce l'utilizzo delle versioni esatte di queste dipendenze che sono state testate con la libreria client Google Ads.
Questo è il modo consigliato per utilizzare gli artefatti della libreria client.
Configurazione di Maven
Aggiungi la BOM a <dependencyManagement> e dichiara google-ads nel tuo
pom.xml file:
<!-- 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>48.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>
Configurazione di Gradle
Gradle 5.0 e versioni successive supportano l'importazione nativa di una BOM utilizzando platform().
In Groovy DSL (build.gradle):
// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:48.0.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
In Kotlin DSL (build.gradle.kts):
// Import the Bill of Materials (BOM).
implementation(platform("com.google.api-ads:google-ads-bom:48.0.0"))
// Add the google-ads dependency, without a version.
implementation("com.google.api-ads:google-ads")
Dichiarazione delle dipendenze coperte dalla BOM
La BOM dell'API Google Ads include la gestione delle versioni per diverse
librerie comuni, come Guava, Protobuf, GAX, e gRPC. Per evitare potenziali conflitti di dipendenze, non devi specificare una versione quando dichiari le dipendenze coperte dalla BOM. La BOM gestisce automaticamente le versioni di queste librerie, garantendo la compatibilità.
Ad esempio, per dichiarare la dipendenza Guava in Maven, utilizza quanto segue:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<!-- NO VERSION SPECIFIED -->
</dependency>
In Gradle Groovy DSL (build.gradle):
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
In Gradle Kotlin DSL (build.gradle.kts):
implementation("com.google.guava:guava") // NO VERSION SPECIFIED
Omettendo la versione, consenti alla BOM di gestirla, il che aiuta a prevenire i problemi causati da versioni di dipendenze incompatibili. Gli indicatori comuni di conflitti di dipendenze includono NoSuchMethodError o ClassNotFoundException, che spesso possono essere risolti assicurandosi che tutte le dipendenze gestite dalla BOM non abbiano una versione specificata.