无法获得Maven依赖性:与Bazel的Libthrift



我正在试图补充一个Bazle项目,Twitter Heron。我在国家的航站楼无法访问一个Maven_server:

错误:/home/xxx/heron/heron/healon/healthmgr/src/java/build:56:1:没有这样 软件包'@org_apache_thrift_libthrift//jar':无法获取maven 依赖性:无法转移工件 org.apache.thrift:libthrift:jar:0.5.0-1从/到 org_apache_thrift_libthrift(http://maven.twttr.com):连接到 maven.twttr.com:80超时并引用了 '//Heron/HealthMgr/SRC/Java:HealthMgr-Unhaded'。错误:分析 目标'//脚本/软件包:binpkgs'失败;构建中断。信息: 经过的时间:10.867s

因此,我从网站上手动下载所需的罐子,将其放在我的本地Maven存储库中,然后将工作区中的Maven_server更改为中央Maven存储库。但是随后,它尝试从中央Maven存储库中找到仅在特定远程存储库中可用的JAR。我明白了:

错误:/home/xxx/heron/heron/healon/healthmgr/src/java/build:56:1:没有这样 软件包'@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) '//Heron/HealthMgr/SRC/Java:HealthMgr-Unhaded'。错误:分析 目标'//脚本/软件包:binpkgs'失败;构建中断。信息: 经过的时间:1.083S

巴泽尔可以在我当地的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

苍鹭使用本机Maven_jar规则,该规则不使用mvn.m2。据我所知,您的选择是:

  1. 尝试将Heron中的org_apache_thrift_libthrift升级到Maven Central中的0.6.1
  2. 尝试将其上传到您自己的Artifactory/Nexus Server(可以是您的计算机上的本地),并将其指向依赖项。
  3. 尝试查看是否可以解决该服务器的连接问题(VPN?)

btw,作为旁注,maven_jar的skylark版本确实使用了 mvn.m2,但是我真的不建议它,因为将来不明确地推荐这一点。

主要原因之一是Bazel不提供Maven二进制文件,因此您现在必须以某种方式确保每个人都使用该项目使用相同的二进制文件。

最新更新