我制作了一个插件,在编译maven模块时运行它。但既然我的组织现在正在迁移到bazel——我们有没有办法直接在bazel中运行插件(mojo)?如果没有,在bazel构建java代码的过程中,有没有一种方法可以调用另一个java代码,它包含了所有的项目信息,就像 MavenProject 莫霍斯的参数?
MavenProject
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_plugin
java_binary
java_library
plugins
java_binary( name = ..., srcs = ..., deps = ..., plugins = [":my_plugin"], ) java_plugin( name = "my_plugin", srcs = ..., deps = ..., processor_class = "...", )
olqngx592#
你可以使用 genrule 与 java_binary 作为一个 tool . 像这样:
genrule
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 .
bazel build :plugin_output
2条答案
按热度按时间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.pluginsolqngx592#
你可以使用
genrule
与java_binary
作为一个tool
. 像这样:在本例中,您应该能够使用
bazel build :plugin_output
.