Zestawienie komponentów (BOM) interfejsu Google Ads API zarządza wersjami zależności, aby uniknąć konfliktów zależności 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 pliku 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>
Konfiguracja Gradle
Gradle w wersji 5.0 i nowszych obsługuje natywny import BOM za pomocą platform().
W języku 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'
W języku DSL Kotlin (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")
Deklarowanie zależności objętych zestawieniem komponentów
Zestawienie komponentów 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, które obejmuje 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 języku DSL Gradle Groovy (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
Jeśli pominiesz wersję, BOM będzie nią zarządzać, co pomoże zapobiec 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.