Freigeben über


AndroidMavenLibrary

Hinweis

Dieses Feature ist nur in .NET 9+ verfügbar.

<AndroidMavenLibrary> ermöglicht die Angabe eines Maven-Artefakts, das automatisch heruntergeladen und einem .NET für Android-Bindungsprojekt hinzugefügt wird. Dies kann hilfreich sein, um die Wartung von .NET für Android-Bindungen für Artefakte zu vereinfachen, die in Maven gehostet werden.

Spezifikation

Eine einfache Verwendung sieht <AndroidMavenLibrary> wie folgt aus:

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

Dies führt zur Erstellungszeit mehrere Aktionen aus:

  • Laden Sie das Java-Artefakt mit Gruppen-ID, Artefakt-ID com.squareup.okhttp3okhttpund Version 4.9.3 von Maven Central in einen lokalen Cache herunter (falls noch nicht zwischengespeichert).
  • Fügen Sie das zwischengespeicherte Paket zu .NET für Android-Bindungen als Build hinzu <AndroidLibrary>.
  • Laden Sie die POM-Datei des Java-Artefaktes (und alle erforderlichen übergeordneten/importierten POM-Dateien) herunter, um die Java-Abhängigkeitsüberprüfung zu aktivieren. Um dieses Feature zu deaktivieren, fügen Sie VerifyDependencies="false" das <AndroidMavenLibrary> Element hinzu.

Beachten Sie, dass nur das angeforderte Java-Artefakt dem Build .NET für Android-Bindungen hinzugefügt wird. Alle Artefaktabhängigkeiten werden nicht hinzugefügt. Wenn das angeforderte Artefakt Abhängigkeiten aufweist, müssen sie einzeln erfüllt werden.

Optionen

<AndroidMavenLibrary> standardmäßig maven Central zu verwenden, sollte jedoch jedes Maven-Repository unterstützen, das keine Authentifizierung erfordert. Dies kann mit dem Repository Attribut gesteuert werden.

Unterstützte Werte sind Central (Standard) Googleoder eine URL zu einem anderen Maven-Repository.

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

Darüber hinaus werden alle Attribute, die auf das <AndroidMavenLibrary> Element angewendet werden, intern in das <AndroidLibrary> Element kopiert. Daher können Attribute wie Bind und Pack zum Steuern des Bindungsprozesses verwendet werden. (Beide Standardeinstellung ist true.)

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