Compartilhar via


AndroidMavenBiblioteca

Observação

Esse recurso só está disponível no .NET 9+.

<AndroidMavenLibrary> permite que um artefato Maven seja especificado, que será baixado automaticamente e adicionado a um projeto de associação do .NET para Android. Isso pode ser útil para simplificar a manutenção de associações do .NET para Android para artefatos hospedados no Maven.

Especificação

Um uso básico de <AndroidMavenLibrary> se parece com:

<!-- Include format is {GroupId}:{ArtifactId} -->
<ItemGroup>
  <AndroidMavenLibrary Include="com.squareup.okhttp3:okhttp" Version="4.9.3" />
</ItemGroup>

Isso realizará várias ações no tempo de build.

  • Baixe o artefato Java com o id do grupo com.squareup.okhttp3, id do artefato okhttp e versão 4.9.3 do Maven Central para um cache local (se ainda não estiver em cache).
  • Adicione o pacote armazenado em cache à compilação de associações do .NET para Android como um <AndroidLibrary>.
  • Faça o download do arquivo POM do artefato Java (e de qualquer arquivo POM pai ou importado necessário) para habilitar a Verificação de Dependência Java. Para desativar esse recurso, adicione VerifyDependencies="false" ao <AndroidMavenLibrary> item.

Observe que somente o artefato Java solicitado é adicionado à compilação de associações do .NET para Android. Quaisquer dependências de artefato não são adicionadas. Se o artefato solicitado tiver dependências, elas deverão ser atendidas individualmente.

Opções

<AndroidMavenLibrary> o padrão é usar o Maven Central, no entanto, ele deve suportar qualquer repositório Maven que não exija autenticação. Isso pode ser controlado com o Repository atributo.

Os valores suportados são Central (padrão), Google, ou uma URL para outro repositório Maven.

<ItemGroup>
  <AndroidMavenLibrary 
    Include="androidx.core:core" 
    Version="1.9.0" 
    Repository="Google" />
</ItemGroup>
<ItemGroup>
  <AndroidMavenLibrary 
    Include="com.github.chrisbanes:PhotoView" 
    Version="2.3.0" 
    Repository="https://repository.mulesoft.org/nexus/content/repositories/public" />
</ItemGroup>

Além disso, todos os atributos aplicados ao <AndroidMavenLibrary> elemento serão copiados para o <AndroidLibrary> que ele cria internamente. Assim, atributos como Bind e Pack podem ser usados para controlar o processo de associação. (Ambos têm como padrão true.)

<ItemGroup>
  <AndroidMavenLibrary 
    Include="androidx.core:core" 
    Version="1.9.0" 
    Repository="Google"
    Bind="false"
    Pack="false" />
</ItemGroup>