Bibliothèque AndroidMaven

Remarque

Cette fonctionnalité est disponible uniquement dans .NET 9+.

<AndroidMavenLibrary> permet à un artefact Maven d’être spécifié, qui sera automatiquement téléchargé et ajouté à un projet de liaison .NET pour Android. Cela peut être utile pour simplifier la maintenance des liaisons .NET pour Android pour les artefacts hébergés dans Maven.

Spécification

Une utilisation de base de <AndroidMavenLibrary> ressemble à ceci :

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

Cette opération effectuera plusieurs actions au moment de la construction :

  • Téléchargez l’artéfact Java avec l’ID du groupe com.squareup.okhttp3, l’ID de l’artéfact okhttp, et la version 4.9.3 depuis Maven Central vers un cache local (s’il n’est pas déjà mis en cache).
  • Ajoutez le package mis en cache à la compilation des liaisons .NET pour Android en tant que <AndroidLibrary>.
  • Téléchargez le fichier POM de l’artefact Java (et tous les fichiers POM parent/importés nécessaires) pour activer la vérification des dépendances Java. Pour désactiver cette fonctionnalité, ajoutez-le VerifyDependencies="false" à l’élément <AndroidMavenLibrary> .

Notez que seul l’artefact Java demandé est ajouté à la compilation des liaisons .NET pour Android. Aucune dépendance d’artefact n’est ajoutée. Si l’artefact demandé a des dépendances, ils doivent être remplis individuellement.

Options

<AndroidMavenLibrary> utilise par défaut Maven Central, mais il doit prendre en charge n’importe quel référentiel Maven qui ne nécessite pas d’authentification. Cela peut être contrôlé avec l’attribut Repository .

Les valeurs prises en charge sont Central (par défaut), Googleou une URL vers un autre référentiel 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>

En outre, tous les attributs appliqués à l’élément <AndroidMavenLibrary> sont copiés à l’élément <AndroidLibrary> qu’il crée internement. Ainsi, les attributs comme Bind et Pack peuvent être utilisés pour contrôler le processus de liaison. (La valeur par défaut est true.)

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