distinta base

La distinta base (BOM) dell'API Google Ads gestisce le versioni delle dipendenze per evitare conflitti 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 Maven

Aggiungi la BOM a <dependencyManagement> e dichiara google-ads nel file 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>48.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>

Configurazione di Gradle

Gradle 5.0 e versioni successive supportano l'importazione di una BOM in modo nativo utilizzando platform().

In Groovy DSL (build.gradle):

// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:48.1.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.1.0"))

// Add the google-ads dependency, without a version.
implementation("com.google.api-ads:google-ads")

Dichiarazione delle dipendenze coperte dalla distinta base (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 distinta base 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

Se ometti la versione, consenti alla distinta base di gestirla, il che aiuta a prevenire i problemi causati da versioni delle dipendenze incompatibili. Gli indicatori comuni di conflitti di dipendenza includono NoSuchMethodError o ClassNotFoundException, che spesso possono essere risolti assicurandosi che tutte le dipendenze gestite dalla distinta base non abbiano una versione specificata.