فهرست مواد (BOM) API گوگل ادز، نسخههای وابستگی را مدیریت میکند تا از تداخل وابستگی با کتابخانههایی مانند Guava و GAX که توسط سایر فریمورکها نیز استفاده میشوند، جلوگیری شود. BOM تضمین میکند که شما از نسخههای دقیقی از این وابستگیها که با کتابخانه کلاینت گوگل ادز آزمایش شدهاند، استفاده میکنید.
این روش توصیه شده برای مصرف مصنوعات کتابخانه کلاینت است.
پیکربندی 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 به صورت زیر است:
// 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
فهرست اجزای API گوگل ادز شامل مدیریت نسخه برای چندین کتابخانه رایج مانند Guava ، Protobuf ، GAX و gRPC است. برای جلوگیری از تداخل وابستگیهای احتمالی، هنگام اعلام وابستگیهایی که فهرست اجزای تحت پوشش آنها را پوشش میدهد، نباید نسخهای را مشخص کنید. فهرست اجزای تحت پوشش به طور خودکار نسخههای این کتابخانهها را مدیریت میکند و سازگاری را تضمین میکند.
برای مثال، برای تعریف وابستگی Guava در Maven، از کد زیر استفاده کنید:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<!-- NO VERSION SPECIFIED -->
</dependency>
و در گریدل:
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
با حذف نسخه، به BOM اجازه میدهید آن را مدیریت کند، که به جلوگیری از مشکلات ناشی از نسخههای وابستگی ناسازگار کمک میکند. شاخصهای رایج تداخل وابستگی شامل NoSuchMethodError یا ClassNotFoundException است که اغلب با اطمینان از اینکه هیچ نسخهای برای همه وابستگیهای مدیریتشده توسط BOM مشخص نشده است، میتوان آنها را حل کرد.