Even though this is not documented on buckbuild.com
, Buck has built-in support for GWT with the gwt_binary rule.
- deps needs to list gwt-dev (and all its transitive dependencies, if downloaded from Central with a remote_file rule and a "mvn:" URL; in the test they use a fat-jar gwt-dev.jar, from the GWT SDK, that's directly checked into the repo, you could also achieve something similar with a remote_file with type='exploded_zip' and simple genrule()s that 'cp $(location …) $OUT').
- module_deps lists java_library rules, and should transitively enclose gwt-user.
- modules is a list of GWT module names to compile, as you would pass them as arguments to the GWT compiler.
- local_workers defaults to 2
- style defaults to 'OBF'
- strict defaults to False (I recommend setting it to True)
Gerrit was built with Buck for a few years (they now switched to Bazel, though maintenance branches might still be using Buck).
I'm not sure they used Buck's built-in GWT support though, as they started using Buck before it gained support for GWT.
I never actually used Buck, so can't comment about the pros and cons. Apparently there's no support for running SuperDevMode so you'd have to configure it separately, and most probably outside of Buck)