Separate java_tools into platform independent and prebuilt part. java_tools is repository package containing tools needed during Java compilation: JavaBuilder, patches for Java compiler, ijar, singlejar, ... Most of the files are jars with Java classes. java_tools are released for three platforms: linux, windows and darwin, however the only difference is in two binaries: ijar and singlejar. This is part one of splitting java_tools and releasing split version (following PR makes use of released split version in Bazel) Java_tools used to be released for multiple Java versions, but all the releases were the same except a some string substitutions in BUILD file. I changed to build only a single version, since it already supports Java from 8 to 14. Changes: - BUILD.java_tools is split into BUILD.java_tools_prebuilt (where the second contains prebuilt binaries) - toolchain definitions are removed from BUILD.java_tools and will be added to tools/jdk/BUILD in the second part - java_toolchain_default.bzl.java_tools is removed (default_java_toolchain.bzl will be updated with its features in the second part). - src/BUILD: JAVA_VERSION is removed, targets used to build java_tools.zip are duplicated to build java_tools_prebuilt.zip (done some cleanup as well) - upload_all_java_tools.sh and upload_java_tools.sh: used by Build kite, I removed java_version over the release, but kept it over tests (for different JDKs) - create_java_tools_release.sh: used by the user in the release process - added platform independent part - tests are updated to use platform independent and platform files, some tests had to be disabled and will be reenabled after the release Closes #12546. PiperOrigin-RevId: 344319092
{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