注意
此功能仅在 .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,工件 IDokhttp,版本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>中。 因此,属性类似于Bind并Pack可用于控制绑定过程。 (两者都默认为 true.)
<ItemGroup>
<AndroidMavenLibrary
Include="androidx.core:core"
Version="1.9.0"
Repository="Google"
Bind="false"
Pack="false" />
</ItemGroup>