Partilhar via


AndroidMavenLibrary

Observação

Esta funcionalidade está disponível apenas em .NET 9+.

<AndroidMavenLibrary> permite especificar um artefacto Maven que será automaticamente descarregado e adicionado a um projeto de ligação .NET para Android. Isto pode ser útil para simplificar a manutenção dos bindings do .NET para Android para artefactos alojados no Maven.

Especificação

Uma utilização básica de <AndroidMavenLibrary> é a seguinte:

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

Isto fará várias coisas durante a construção:

  • Faça o download do artefacto Java com identificação de grupo com.squareup.okhttp3, identificação de artefacto okhttp, e versão 4.9.3 do Maven Central para uma cache local (se ainda não estiver em cache).
  • Adicione o pacote em cache à compilação .NET para Android bindings como um <AndroidLibrary>.
  • Transfira o ficheiro POM do artefacto Java (e quaisquer ficheiros POM necessários/importados) para ativar a Verificação de Dependências Java. Para optar por não usar esta funcionalidade, adicione VerifyDependencies="false" ao <AndroidMavenLibrary> item.

Note que apenas o artefato Java solicitado é integrado na compilação de bindings do .NET para Android. Quaisquer dependências de artefatos não são adicionadas. Se o artefacto solicitado tiver dependências, estas devem ser cumpridas individualmente.

Opções

<AndroidMavenLibrary> por padrão usa o Maven Central, mas deve suportar qualquer repositório Maven que não exija autenticação. Isto pode ser controlado com o Repository atributo.

Os valores suportados são Central (por defeito), 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, quaisquer atributos aplicados ao elemento <AndroidMavenLibrary> serão copiados para o <AndroidLibrary> que cria internamente. Assim, atributos como Bind e Pack podem ser usados para controlar o processo de ligaçã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>