AndroidMavenLibrary

Opmerking

Deze functie is alleen beschikbaar in .NET 9+.

<AndroidMavenLibrary> hiermee kan een Maven-artefact worden opgegeven dat automatisch wordt gedownload en toegevoegd aan een .NET voor Android-bindingsproject. Dit kan handig zijn om het onderhoud van .NET voor Android-bindingen te vereenvoudigen voor artefacten die worden gehost in Maven.

Specification

Een basisgebruik van <AndroidMavenLibrary> ziet er als volgt uit:

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

Dit doet verschillende dingen tijdens het bouwen:

  • Download het Java-artefact met groeps-id com.squareup.okhttp3, artefact-id okhttpen versie 4.9.3 van Maven Central naar een lokale cache (als dit nog niet in de cache is opgeslagen).
  • Voeg het in de cache opgeslagen pakket toe aan de build van .NET voor Android-bindingen als een <AndroidLibrary>.
  • Download het POM-bestand van het Java-artefact (en eventuele benodigde bovenliggende/geïmporteerde POM-bestanden) om Verificatie van Java-afhankelijkheid in te schakelen. Als u zich wilt afmelden voor deze functie, voegt u dit toe VerifyDependencies="false" aan het <AndroidMavenLibrary> item.

Houd er rekening mee dat alleen het aangevraagde Java-artefact wordt toegevoegd aan de build van .NET voor Android-bindingen. Artefactafhankelijkheden worden niet toegevoegd. Als het aangevraagde artefact afhankelijkheden heeft, moeten ze afzonderlijk worden uitgevoerd.

Opties

<AndroidMavenLibrary> standaard wordt Maven Central gebruikt, maar deze moet ondersteuning bieden voor alle Maven-opslagplaatsen waarvoor geen verificatie is vereist. Dit kan worden beheerd met het Repository kenmerk.

Ondersteunde waarden zijn Central (standaard) Googleof een URL naar een andere Maven-opslagplaats.

<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>

Bovendien worden alle kenmerken die op het <AndroidMavenLibrary> element worden toegepast, gekopieerd naar het <AndroidLibrary> element dat intern wordt gemaakt. Kenmerken zoalsBind en Pack kunnen dus worden gebruikt om het bindingsproces te beheren. (Beide standaard ingesteld op true.)

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