无法获取Maven依赖关系:libthrift与Bazel

时间:2017-09-06 06:25:25

标签: maven dependencies bazel heron

我正在尝试编写一个bazle项目,Twitter Heron。 在我的国家/地区的终端中有一个我无法访问的maven_server:

  

错误:/ home / xxx / heron / heron / healthmgr / src / java / BUILD:56:1:没有这样的   package'@ org_apache_thrift_libthrift // jar':无法获取Maven   依赖:无法传输工件   org.apache.thrift:libthrift:jar:0.5.0-1 from / to   org_apache_thrift_libthrift(http://maven.twttr.com):连接到   maven.twttr.com:80超时并被引用   '//苍鹭/ healthmgr / SRC / JAVA:healthmgr-无阴影'。错误:分析   target'// scripts / packages:binpkgs'失败;建立中止。信息:   经历时间:10.867s

因此,我从站点手动下载所需的jar,将其放入我的本地maven存储库,并将WORKSPACE中的maven_server更改为中央maven存储库。 但随后它尝试从中央maven存储库中找到仅在特定远程存储库中可用的jar。我明白了:

  

错误:/ home / xxx / heron / heron / healthmgr / src / java / BUILD:56:1:没有这样的   package'@ org_apache_thrift_libthrift // jar':无法获取Maven   依赖:无法找到工件   org.apache.thrift:libthrift:jar:0.5.0-1 in org_apache_thrift_libthrift   (http://central.maven.org/maven2)并引用   '//苍鹭/ healthmgr / SRC / JAVA:healthmgr-无阴影'。错误:分析   target'// scripts / packages:binpkgs'失败;建立中止。信息:   经过时间:1.083秒

可以在我的本地maven存储库中找到依赖关系吗?或者我把罐子放错了路?或者还有其他问题吗?

ls ~/.m2/repository/org/apache/thrift/libthrift/0.5.0-1
libthrift-0.5.0-1.jar libthrift-0.5.0-1.pom libthrift-0.5.0-1-sources.jar

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Heron使用原生的maven_jar规则,该规则不会使用mvn.m2。 据我所知,你的选择是:

  1. 尝试将Heron中的org_apache_thrift_libthrift升级到maven central中存在的0.6.1
  2. 尝试将其上传到您自己的artifactory / nexus服务器(它可以是您计算机上的本地服务器)并将依赖项指向它。
  3. 尝试查看您是否可以解决与该服务器的连接问题(VPN?)
  4. BTW,作为旁注,maven_jar的云雀版确实使用了mvn,所以.m2,但我真的不推荐它,因为它不是100 %clear将来会推荐这个 其中一个主要原因是bazel没有提供maven二进制文件,因此您现在必须以某种方式确保构建项目的每个人都使用相同的二进制文件。