Спецификация материалов

Спецификация зависимостей (BOM) API Google Ads управляет версиями зависимостей, чтобы избежать конфликтов с такими библиотеками, как Guava и GAX , которые также используются другими фреймворками. BOM гарантирует, что вы используете именно те версии этих зависимостей, которые были протестированы с клиентской библиотекой Google Ads.

Это рекомендуемый способ использования артефактов клиентской библиотеки.

Конфигурация Maven {#maven-configuration}

Зависимость Maven:

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

конфигурация Gradle

Зависимость Gradle следующая:

// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:42.0.0')

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

Объявление зависимостей, охватываемых BOM.

BOM-файл Google Ads API включает в себя управление версиями для нескольких распространенных библиотек, таких как Guava , Protobuf , GAX и gRPC . Во избежание потенциальных конфликтов зависимостей, не следует указывать версию при объявлении зависимостей, которые охватывает BOM-файл. BOM-файл автоматически управляет версиями этих библиотек, обеспечивая совместимость.

Например, чтобы объявить зависимость Guava в Maven, используйте следующее:

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

А в Gradle:

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

Опуская версию, вы позволяете BOM управлять ею, что помогает предотвратить проблемы, вызванные несовместимыми версиями зависимостей. К распространенным индикаторам конфликтов зависимостей относятся NoSuchMethodError или ClassNotFoundException , которые часто можно устранить, убедившись, что для всех зависимостей, управляемых BOM, версия не указана.