如何为maven_aar
规则指定maven存储库?似乎maven_aar
无法识别我的maven_server
:
maven_server(
name = "default",
url = "http://xxx"
)
非常感谢!
答案 0 :(得分:1)
它使用常规maven构造而不是maven_server。 从这个封闭的问题(How to specify a maven repository for the maven_aar rule?): “... maven_server规则仅适用于本机maven_jar规则。我们以不同的方式使skylark maven_jar和mane_aar规则。而是使用标准的maven设置XML约定。
https://maven.apache.org/settings.html
您可以将存储库放在计算机上的全局maven设置文件中,也可以创建自定义settings.xml并将其路径放在maven_aar的'settings'属性中。“
答案 1 :(得分:0)
maven_jar
中的maven_aar
和@bazel_tools//tools/build_defs/repo:maven_rules.bzl
规则从Maven安装设置文件${maven.home}/conf/settings.xml
中读取Maven设置,用户安装设置文件${user.home}/.m2/settings.xml
或来自settings
规则的maven_aar
属性中指定的路径。
要为项目指定存储库,您可能希望编写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"],
)