Google Ads API का बिल ऑफ़ मटीरियल (बीओएम), डिपेंडेंसी के वर्शन मैनेज करता है. इससे Guava और GAX जैसी लाइब्रेरी के साथ डिपेंडेंसी से जुड़े विवादों से बचा जा सकता है. इन लाइब्रेरी का इस्तेमाल अन्य फ़्रेमवर्क भी करते हैं. बीओएम यह पक्का करता है कि आप इन डिपेंडेंसी के उन सटीक वर्शन का इस्तेमाल करें जिन्हें Google Ads क्लाइंट लाइब्रेरी के साथ टेस्ट किया गया है.
क्लाइंट लाइब्रेरी आर्टफ़ैक्ट का इस्तेमाल करने के लिए, यह तरीका अपनाने का सुझाव दिया जाता है.
Maven कॉन्फ़िगरेशन
<dependencyManagement> में बीओएम जोड़ें और अपनी pom.xml फ़ाइल में google-ads का एलान करें:
<!-- 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>
Gradle कॉन्फ़िगरेशन
Gradle 5.0 और इसके बाद के वर्शन में, platform() का इस्तेमाल करके बीओएम को नेटिव तौर पर इंपोर्ट किया जा सकता है.
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'
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")
बीओएम में शामिल डिपेंडेंसी का एलान करना
Google Ads API BOM में, कई सामान्य लाइब्रेरी के लिए वर्शन मैनेजमेंट शामिल है. जैसे, Guava, Protobuf, GAX, और gRPC. डिपेंडेंसी से जुड़ी संभावित समस्याओं से बचने के लिए, बीओएम में शामिल डिपेंडेंसी का एलान करते समय, आपको वर्शन की जानकारी नहीं देनी चाहिए. बीओएम, इन लाइब्रेरी के वर्शन को अपने-आप मैनेज करता है. इससे यह पक्का होता है कि ये लाइब्रेरी एक-दूसरे के साथ काम करती हैं.
उदाहरण के लिए, Maven में Guava डिपेंडेंसी का एलान करने के लिए, इसका इस्तेमाल करें:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<!-- NO VERSION SPECIFIED -->
</dependency>
Gradle Groovy DSL (build.gradle) में:
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
Gradle Kotlin DSL (build.gradle.kts) में:
implementation("com.google.guava:guava") // NO VERSION SPECIFIED
वर्शन की जानकारी न देने पर, बीओएम उसे मैनेज करता है. इससे, डिपेंडेंसी के ऐसे वर्शन की वजह से होने वाली समस्याओं से बचा जा सकता है जो काम नहीं करते. डिपेंडेंसी से जुड़ी समस्याओं के सामान्य इंडिकेटर में NoSuchMethodError या ClassNotFoundException शामिल हैं. इन्हें अक्सर यह पक्का करके हल किया जा सकता है कि बीओएम से मैनेज की जाने वाली सभी डिपेंडेंसी का कोई वर्शन तय न किया गया हो.