首页 > 解决方案 > 如何在 Java 规则中设置 Bazel --warn_duplicate_resources 标志?

问题描述

我试图弄清楚如何在 Bazel BUILD 文件或 .bazelrc 文件中设置一个标志,以便在构建 Java jar 时打开 --warn_duplicate_resources 或 --no_duplicates 标志(在我的情况下实际上是 Scala,但是答案应该是一样的)。我想这样做,如果 Bazel 在打包 jar 时看到重复文件(例如两个不同的 logback.xml 文件),则构建将失败,而不是选择一个文件并丢弃另一个文件。

在使用旧 jar 构建新 jar 时,我遇到了一些不同资源的阴影问题。在互联网上翻找之后,我在几个不同的地方的 bazel 代码库中找到了 --warn_duplicate_resources 标志以及 --no_duplicates 标志。这些似乎有助于确保避免多个 jar 文件定义相同资源文件的问题。

https://github.com/bazelbuild/bazel/blob/master/src/java_tools/singlejar/java/com/google/devtools/build/singlejar/SingleJar.java

https://github.com/bazelbuild/bazel/blob/master/src/tools/singlejar/output_jar.cc

但是,我不知道在 BUILD 或 .bazelrc 文件中放置什么标志来打开 --warn_duplicate_resources 或 --no_duplicates 标志。java_library 规则似乎没有任何直接联系,简单地将“build --warn_duplicate_resources”添加到 .bazelrc 会导致构建失败。

https://docs.bazel.build/versions/master/be/java.html#java_library

任何帮助将不胜感激,谢谢!

标签: jarbazel

解决方案


推荐阅读