有没有办法在工作区内的2个maven_server之间切换?

时间:2018-02-13 08:09:39

标签: bazel

一个指向http://repo.maven.apache.org/maven2,另一个指向私人神器?

maven_server(
   name = "default",
   url = "http://repo.maven.apache.org/maven2",
)

maven_server(
   name = "default",
   url = "<some private maven repo>",
)

基本上,我想要做的是在我的本地机器上进行开发时使用http://repo.maven.apache.org/maven2作为默认值,并在我的机器外部进行prod构建时切换到另一个maven_server(例如http://intranet.mycorp.net)。

1 个答案:

答案 0 :(得分:0)

您是否看过maven_jar的Skylark实施?它可以在@bazel_tools中找到。

您可以将此行添加到WORKSPACE

的顶部来使用它
load("@bazel_tools//tools/build_defs/repo:maven_rules.bzl", "maven_jar")`

此实现允许您使用settings.xml属性来使用自定义maven_jar.settings,因为它直接调用mvn。请注意,server属性已从此实现中删除,因为服务器设置已在settings.xml中指定。例如,

maven_jar(
  name = "foo",
  artifact = "foo:foo:1.0",
  settings = "//:private_settings.xml",
)

maven_jar(
  name = "bar",
  artifact = "bar:bar:1.0",
  settings = "//:other_settings.xml",
)