Lista materiałów

Zestawienie materiałów (BOM) interfejsu Google Ads API zarządza wersjami zależności , aby uniknąć konfliktów z bibliotekami takimi jak Guava i GAX , które są też używane przez inne platformy. BOM zapewnia, że używasz dokładnie tych wersji zależności, które zostały przetestowane z biblioteką klienta Google Ads.

Jest to zalecany sposób korzystania z artefaktów biblioteki klienta.

Konfiguracja Maven

Dodaj BOM do <dependencyManagement> i zadeklaruj google-ads w swoim pom.xml pliku:

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

Konfiguracja Gradle

Gradle w wersji 5.0 i nowszej obsługuje importowanie BOM natywnie za pomocą platform().

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

W 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")

Deklarowanie zależności objętych BOM

BOM interfejsu Google Ads API obejmuje zarządzanie wersjami kilku popularnych bibliotek, takich jak Guava, Protobuf, GAX, i gRPC. Aby uniknąć potencjalnych konfliktów zależności, nie wolno określać wersji podczas deklarowania zależności objętych BOM. BOM automatycznie zarządza wersjami tych bibliotek, zapewniając zgodność.

Aby na przykład zadeklarować zależność Guava w Maven, użyj tego kodu:

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

W Gradle Groovy DSL (build.gradle):

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

W Gradle Kotlin DSL (build.gradle.kts):

implementation("com.google.guava:guava") // NO VERSION SPECIFIED

Pomijając wersję, pozwalasz BOM zarządzać nią, co pomaga zapobiegać problemom spowodowanym przez niezgodne wersje zależności. Typowe wskaźniki konfliktów zależności to NoSuchMethodError lub ClassNotFoundException, które często można rozwiązać, upewniając się, że wszystkie zależności zarządzane przez BOM nie mają określonej wersji.