A lista de materiais (BOM) da API Google Ads gerencia versões de dependência para evitar conflitos com bibliotecas como Guava e GAX, que também são usadas por outros frameworks. A BOM garante que você use as versões exatas dessas dependências que foram testadas com a biblioteca de cliente do Google Ads.
Essa é a maneira recomendada de consumir os artefatos da biblioteca de cliente.
Configuração do Maven
Adicione a BOM a <dependencyManagement> e declare google-ads no seu
arquivo 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>46.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>
Configuração do Gradle
O Gradle 5.0 e versões mais recentes oferecem suporte à importação nativa de uma BOM usando platform().
Na DSL do Groovy (build.gradle):
// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:46.1.0')
// Add the google-ads dependency, without a version.
implementation 'com.google.api-ads:google-ads'
Na DSL do Kotlin (build.gradle.kts):
// Import the Bill of Materials (BOM).
implementation(platform("com.google.api-ads:google-ads-bom:46.1.0"))
// Add the google-ads dependency, without a version.
implementation("com.google.api-ads:google-ads")
Declarar dependências cobertas pela BOM
A BOM da API Google Ads inclui o gerenciamento de versões de várias bibliotecas comuns, como Guava, Protobuf, GAX e gRPC. Para evitar
possíveis conflitos de dependência, não especifique uma versão ao
declarar dependências cobertas pela BoM. A BoM gerencia automaticamente as
versões dessas bibliotecas, garantindo a compatibilidade.
Por exemplo, para declarar a dependência Guava no Maven, use o seguinte:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<!-- NO VERSION SPECIFIED -->
</dependency>
Na DSL do Gradle Groovy (build.gradle):
implementation 'com.google.guava:guava' // NO VERSION SPECIFIED
Na DSL do Kotlin do Gradle (build.gradle.kts):
implementation("com.google.guava:guava") // NO VERSION SPECIFIED
Ao omitir a versão, você permite que a BOM gerencie isso, o que ajuda a evitar problemas
causados por versões de dependência incompatíveis. Os indicadores comuns de conflitos de dependência incluem NoSuchMethodError ou ClassNotFoundException, que geralmente podem ser resolvidos garantindo que todas as dependências gerenciadas pela BOM não tenham uma versão especificada.