通过


AndroidMavenLibrary

注意

此功能仅在 .NET 9+ 中可用。

<AndroidMavenLibrary> 允许指定一个 Maven 工件,该工件将自动下载并添加到 .NET for Android 绑定项目中。 这对于简化在 Maven 中托管的构件的 .NET for Android 绑定维护非常有用。

规范

基本用法 <AndroidMavenLibrary> 如下所示:

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

这将在生成时执行多项操作:

  • 将 Java 工件(组 ID com.squareup.okhttp3,工件 ID okhttp,版本 4.9.3)从 Maven Central 下载到本地缓存(如果尚未缓存)。
  • 将缓存的包添加到 .NET for Android 绑定的构建过程,作为一个 <AndroidLibrary>
  • 下载 Java 项目的 POM 文件(以及任何所需的父/导入 POM 文件)以启用 Java 依赖项验证。 若要选择退出此功能,请将 VerifyDependencies="false" 添加到 <AndroidMavenLibrary> 项目。

请注意,只有请求的 Java 工件会被添加到 .NET for Android 绑定构建中。 不会添加任何工件依赖项。 如果请求的项目具有依赖项,则必须单独完成它们。

选项

<AndroidMavenLibrary> 默认使用 Maven Central,但它应支持任何不需要身份验证的 Maven 存储库。 可以通过Repository属性进行控制。

支持的值是 Central (默认值) Google或指向另一个 Maven 存储库的 URL。

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

此外,应用于<AndroidMavenLibrary>元素的任何属性都将复制到其内部创建的<AndroidLibrary>中。 因此,属性类似于BindPack可用于控制绑定过程。 (两者都默认为 true.)

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