如何为 maven_aar 规则指定 Maven 存储库?

How to specify a maven repository for the maven_aar rule?

如何为maven_aar规则指定maven仓库? maven_aar 似乎无法识别我的 maven_server:

maven_server(
    name = "default",
    url = "http://xxx"
)

非常感谢!

它使用常规的 Maven 构造而不是 maven_server。 来自这个已关闭的问题 (): “... maven_server 规则仅适用于本机 maven_jar 规则。我们使 skylark maven_jar 和 mane_aar 规则不同。相反,它使用标准的 Maven 设置 XML约定。

https://maven.apache.org/settings.html

您可以将您的存储库放在您机器上的全局 maven 设置文件中,或者您可以创建一个自定义 settings.xml 并将它的路径放在 [=25] 的 'settings' 属性中=]."

maven_jarmaven_aar 规则 @bazel_tools//tools/build_defs/repo:maven_rules.bzl 从 Maven 安装设置文件 ${maven.home}/conf/settings.xml 中读取 Maven 设置,用户安装设置文件 ${user.home}/.m2/settings.xml 或来自 maven_aar 规则的 settings 属性中指定的路径。

要为您的项目指定存储库,您可能需要编写一个 Maven settings.xml 文件并将其签入您的存储库

例如,要使用使用 JCenter 作为中央存储库的 Maven 配置文件来设置依赖于 Volley 的 android_binary

$ cat WORKSPACE
load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_aar")
maven_aar(
    name = "volley",
    artifact = "com.android.volley:volley:1.0.0",
    settings = "//:settings.xml",
)

$ cat settings.xml
<?xml version='1.0' encoding='UTF-8'?>
<settings
    xsi:schemaLocation='http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd'
    xmlns='http://maven.apache.org/SETTINGS/1.0.0'
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <id>central</id>
          <name>bintray</name>
          <url>http://jcenter.bintray.com</url>
        </repository>
      </repositories>
      <id>bintray</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>bintray</activeProfile>
  </activeProfiles>
</settings>

$ cat BUILD
android_binary(
    name = "app",
    srcs = glob(["*.java"]),
    manifest = "AndroidManifest.xml",
    custom_package = "com.example.app",
    deps = ["@volley//aar"],
)