| """Wrapper for libraries that Gerrit already ships in gerrit.war. | |
| Standalone Gitiles links these and bundles them into gitiles.war as usual. | |
| When Gitiles is built inside the Gerrit tree | |
| (--@com_googlesource_gerrit_bazlets//flags:in_gerrit_tree=true), they are | |
| switched to neverlink, so the Gitiles Gerrit plugin does not re-package | |
| classes that gerrit.war already provides on the runtime classpath. | |
| """ | |
| load("@rules_java//java:defs.bzl", "java_library") | |
| def provided_java_library(name, exports, runtime_deps = []): | |
| """java_library that is linked standalone but neverlink inside Gerrit. | |
| Args: | |
| name: target name; consumers depend on this directly. | |
| exports: exported libraries (as for java_library). | |
| runtime_deps: runtime deps (only relevant to the standalone build). | |
| """ | |
| java_library( | |
| name = name, | |
| exports = exports, | |
| runtime_deps = runtime_deps, | |
| neverlink = select({ | |
| "//lib:in_gerrit_tree": 1, | |
| "//conditions:default": 0, | |
| }), | |
| visibility = ["//visibility:public"], | |
| ) |