pdq/java/bazel/rules/java_binaries.bzl (24 lines of code) (raw):

def java_binaries(srcs, prefix, **kwargs): """Create multiple java_binary() targets using the same configuration for all names srcs. This is useful if you have a package full of scripts which are all binaries which require the same set of dependencies. For example: load("//bazel/rules:java_binaries.bzl", "java_binaries") java_binaries( srcs = glob(["*.java"]), prefix = "com.pinterest.contentsafety.tools", runtime_deps = [":tools"], testonly = 1, ) """ for src in srcs: if not src.endswith('.java'): fail("{} doesn't end with .java".format(src)) parts = src.split('/') filename = parts[-1] classname = filename.rstrip('.java') native.java_binary( name = classname, main_class = "{}.{}".format(prefix, classname), **kwargs )