commit | 526ea392ac50a0f11eb65fd29a6cde5962a08c97 | [log] [tgz] |
---|---|---|
author | gregce <gregce@google.com> | Wed May 26 19:48:32 2021 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Wed May 26 19:49:58 2021 -0700 |
tree | 1dc5e0c33a6182156dceb004ebda0d5f96fa1c43 | |
parent | e030be9f16a662ff4363d311881fe56789bb9096 [diff] |
Java compilation: generate distinct .jdeps for the executor vs. local filesystems. This supports cache-sharing Java compilation across CPUs. .jdeps is essentially a manifest of which files compilation consumes. This change splits it in two: the compilation running on the executor produces a .jdeps with the paths the executor sees (call this "stripped" deps). Bazel then rewrites this file locally with the "full" paths on the local filesystem (call this "full" deps). This lets the executor remove config prefixes (like "/x86-opt/") from its actions without breaking the paths Bazel and post-build consumers need. Another option is to simply change the format of .jdeps. But there are other consumers of this file besides Bazel. So that approach would be much more complicated. Experiments show 43% fewer executor Java actions on a sample build. For https://github.com/bazelbuild/bazel/issues/6526. PiperOrigin-RevId: 376081433
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md