Java bazel是惰性构建的目标

Java bazel是惰性构建的目标,java,scala,build,bazel,Java,Scala,Build,Bazel,我正在使用“-like”解决方案来保存我的maven第三方JAR。在一对maven\u jarrepository规则和java\u import规则中。 作为一个大组织的一部分,我将所有托管依赖项同步到工作区。这使得我有了更多的实际使用的依赖目标 问题在于运行bazel build/…时-它指的是所有java\u导入(或scala\u导入)并下载所有jar(即使是我不需要的jar) 我如何才能告诉bazel仅在其他目标中提及的情况下构建这些第三方目标 我能想到的一个非常丑陋的解决方案是将所有内

我正在使用“-like”解决方案来保存我的maven第三方JAR。在一对
maven\u jar
repository规则和
java\u import
规则中。 作为一个大组织的一部分,我将所有托管依赖项同步到工作区。这使得我有了更多的实际使用的依赖目标

问题在于运行
bazel build/…
时-它指的是所有
java\u导入
(或
scala\u导入
)并下载所有jar(即使是我不需要的jar)

我如何才能告诉bazel仅在其他目标中提及的情况下构建这些第三方目标

我能想到的一个非常丑陋的解决方案是将所有内部目标移动到一个主文件夹:

+ third_party
  | - com
  | - org
+ internal
  | - module-a
  | - module-b
然后我只能通过运行
bazel run//internal/…
来构建我的内部目标,但这远远不够优雅

我很高兴在我不想构建的目标上有某种标志,除非没有这种标志的目标直接或间接地要求

带有标记=[“manual”]的目标将不包括在通配符目标模式中(…,:*,:all等)。如果希望Bazel构建/测试这些测试目标,则应在命令行上使用显式目标模式指定这些测试目标

带有标记=[“manual”]的目标将不包括在通配符目标模式中(…,:*,:all等)。如果希望Bazel构建/测试这些测试目标,则应在命令行上使用显式目标模式指定这些测试目标


你是说
maven\u jar
java\u import
规则对导入所有的dep吗?您可以将它们拆分为每个dep的maven jar/Java导入吗?而且,您的丑陋解决方案一点也不丑陋。这是大多数Bazel项目遵循的惯例。对于使用Bazel的项目来说,分离源依赖和外部依赖通常是一个好主意。你是说
maven\u jar
java\u import
规则对导入所有dep?您可以将它们拆分为每个dep的maven jar/Java导入吗?而且,您的丑陋解决方案一点也不丑陋。这是大多数Bazel项目遵循的惯例。对于使用Bazel的项目来说,分离源代码和外部依赖通常是一个好主意。