Google Ads API の部品表(BOM)は、依存関係のバージョンを管理し、他のフレームワークでも使用されている Guava や GAX などのライブラリとの依存関係の競合を回避します。BOM を使用すると、Google 広告クライアント ライブラリでテスト済みのこれらの依存関係の正確なバージョンを使用できます。
これは、クライアント ライブラリ アーティファクトを使用するおすすめの方法です。
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>41.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>
Gradle 構成
Gradle の依存関係は次のとおりです。
// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:41.1.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
BOM でカバーされる依存関係の宣言
Google Ads API BOM には、Guava、Protobuf、GAX、gRPC などの一般的なライブラリのバージョン管理が含まれています。依存関係の競合を回避するため、BOM でカバーされる依存関係を宣言するときは、バージョンを指定しないでください。BOM はこれらのライブラリのバージョンを自動的に管理し、互換性を確保します。
たとえば、Maven で Guava 依存関係を宣言するには、次のようにします。
<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 で管理されるすべての依存関係にバージョンが指定されていないことを確認することで解決できることがよくあります。