A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.
This repo is dead.
Please see https://github.com/facebook/buck2 for the build system that replaces it.
Old content continues below for historical purposes.
~Buck is a build tool. To see what Buck can do for you, check out the documentation at http://buck.build/.~
Since Buck is used to build Buck, the initial build process involves 2 phases:
git clone --depth 1 https://github.com/facebook/buck.git
cd buck
ant
You must be using Java 8 or 11 for this to compile successfully. If you see compilation errors from ant, check your JAVA_HOME
is pointing at one of these versions.
./bin/buck build --show-output buck
# output will contain something like
# //programs:buck buck-out/gen/programs/buck.pex
buck-out/gen/programs/buck.pex --help
Pre-built binaries of buck for any buck sha
can be downloaded from https://jitpack.io/com/github/facebook/buck/<sha>/buck-<sha>.pex
. The very first time a version of buck is requested, it is built via jitpack. As a result, it could take a few minutes for this initial binary to become available. Every subsequent request will just serve the built artifact directly. This functionality is available for any fork of buck as well, so you can fetch https://jitpack.io/com/github/<github-user-or-org>/buck/<sha>/buck-<sha>.pex
For buck binaries built for JDK 11, modify end of the url to buck-<sha>-java11.pex
.
Buck tries to move fast with respect to its internals. However, for user facing features (build rules, command line interface, etc), the Buck team tries to have a graceful deprecation process. Note that this generally applies only to documented functionality, or functionality that is less documented, but appears to be in wide use. That process is:
Apache License 2.0