فهرست مواد (BOM) API گوگل ادز، نسخههای وابستگی را مدیریت میکند تا از تداخل وابستگی با کتابخانههایی مانند Guava و GAX که توسط سایر فریمورکها نیز استفاده میشوند، جلوگیری شود. BOM تضمین میکند که شما از نسخههای دقیقی از این وابستگیها که با کتابخانه کلاینت گوگل ادز آزمایش شدهاند، استفاده میکنید.
این روش توصیه شده برای مصرف مصنوعات کتابخانه کلاینت است.
پیکربندی Maven
BOM را به <dependencyManagement> اضافه کنید و google-ads در فایل 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>47.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>
پیکربندی گریدل
گریدل ۵.۰ و نسخههای بعدی آن از ایمپورت کردن یک BOM به صورت بومی با استفاده از platform() پشتیبانی میکنند.
در Groovy DSL ( build.gradle ):
// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:47.0.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
در کاتلین DSL ( build.gradle.kts ):
// Import the Bill of Materials (BOM).
implementation(platform("com.google.api-ads:google-ads-bom:47.0.0"))
// Add the google-ads dependency, without a version.
implementation("com.google.api-ads:google-ads")
اعلام وابستگیهای تحت پوشش BOM
فهرست اجزای API گوگل ادز شامل مدیریت نسخه برای چندین کتابخانه رایج مانند Guava ، Protobuf ، GAX و gRPC است. برای جلوگیری از تداخل وابستگیهای احتمالی، هنگام اعلام وابستگیهایی که فهرست اجزای تحت پوشش آنها را پوشش میدهد، نباید نسخهای را مشخص کنید. فهرست اجزای تحت پوشش به طور خودکار نسخههای این کتابخانهها را مدیریت میکند و سازگاری را تضمین میکند.
برای مثال، برای تعریف وابستگی Guava در Maven، از کد زیر استفاده کنید:
<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
با حذف نسخه، به BOM اجازه میدهید آن را مدیریت کند، که به جلوگیری از مشکلات ناشی از نسخههای وابستگی ناسازگار کمک میکند. شاخصهای رایج تداخل وابستگی شامل NoSuchMethodError یا ClassNotFoundException است که اغلب با اطمینان از اینکه هیچ نسخهای برای همه وابستگیهای مدیریتشده توسط BOM مشخص نشده است، میتوان آنها را حل کرد.