如何解决如何从bazel中查询和找出maven软件包的名称和版本?
如果我使用grep
运行此命令,则可以从maven存储库中检索项目所需的依赖项列表。
bazel query "deps(//my-project-server)" | grep "@maven"
每个依赖项,我都会得到如下输出列表:
@maven//:com_thoughtworks_paranamer_paranamer
@maven//:v1/https/repo.maven.apache.org/maven2/com/thoughtworks/paranamer/paranamer/2.8/paranamer-2.8.jar
@maven//:com_thoughtworks_paranamer_paranamer_2_8_extension
@maven//:v1/https/repo.maven.apache.org/maven2/com/thoughtworks/paranamer/paranamer/2.8/paranamer-2.8-sources.jar
我真正想要的是软件包的名称和版本。
在上面的示例中,我要提取这对数据com_thoughtworks_paranamer_paranamer
和2.8
。
有没有一种直接的方法可以让bazel为所有Maven依赖项产生这样的结果?
解决方法
bazel query <expression> --output=build | grep tags
可以使您走得更远:
例如:
$ bazel query @maven//:all --output=build | grep tags
tags = ["maven_coordinates=org.hamcrest:hamcrest-core:2.1"],tags = ["maven_coordinates=org.hamcrest:hamcrest:2.1"],tags = ["maven_coordinates=com.google.guava:guava:27.0-jre"],tags = ["maven_coordinates=org.codehaus.mojo:animal-sniffer-annotations:1.17"],tags = ["maven_coordinates=org.checkerframework:checker-qual:2.5.2"],tags = ["maven_coordinates=com.google.j2objc:j2objc-annotations:1.1"],tags = ["maven_coordinates=com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava"],tags = ["maven_coordinates=com.google.guava:failureaccess:1.0"],tags = ["maven_coordinates=com.google.errorprone:error_prone_annotations:2.2.0"],tags = ["maven_coordinates=com.google.code.findbugs:jsr305:3.0.2"],
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。