有没有办法在bazel构建中调用java代码(比如定制maven插件)?

ryoqjall  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(568)

我制作了一个插件,在编译maven模块时运行它。但既然我的组织现在正在迁移到bazel——我们有没有办法直接在bazel中运行插件(mojo)?
如果没有,在bazel构建java代码的过程中,有没有一种方法可以调用另一个java代码,它包含了所有的项目信息,就像 MavenProject 莫霍斯的参数?

g9icjywg

g9icjywg1#

听起来你可能想试试 java_plugin ,用于运行具有 java_binary 以及 java_library : https://docs.bazel.build/versions/master/be/java.html#java_plugin
然后用 plugins 的属性 java_binary 或者 java_library : https://docs.bazel.build/versions/master/be/java.html#java_binary.plugins

java_binary(
  name = ...,
  srcs = ...,
  deps = ...,
  plugins = [":my_plugin"],
)

java_plugin(
  name = "my_plugin",
  srcs = ...,
  deps = ...,
  processor_class = "...",
)
olqngx59

olqngx592#

你可以使用 genrulejava_binary 作为一个 tool . 像这样:

java_binary(
    name = "my_plugin",
    ...
)

genrule(
    name = "run_plugin",
    srcs = [],
    cmd = "$(location my_plugin) > \"$@\"",
    outs = ["plugin_output"],
    tools = [":my_plugin"],
)

在本例中,您应该能够使用 bazel build :plugin_output .

相关问题