Update bazel WORKSPACE files (#896)

* Update bazel WORKSPACE files

* Use fresh OSX image

* Cache homebrew dirs for faster startup
diff --git a/.travis.yml b/.travis.yml
index b57e9ef..caf1260 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,16 @@
 branches:
   only:
   - master
+
+cache:
+  directories:
+    - $HOME/Library/Caches/Homebrew
+    - /usr/local/Homebrew
+
+before_cache:
+  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi
+  - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi
+
 matrix:
   include:
     ###
@@ -154,16 +164,20 @@
     ## We'll just test 4.4 and the most recent version.
     ###
     - os: osx
+      osx_image: xcode12.2
       env: BUILD_SYSTEM=cmake C_COMPILER=gcc CXX_COMPILER=g++
     - os: osx
+      osx_image: xcode12.2
       env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9
     - os: osx
+      osx_image: xcode12.2
       env: BUILD_SYSTEM=cmake
 
     ###
     ## Python 2.7 OS X build (using the system /usr/bin/python)
     ###
     - os: osx
+      osx_image: xcode12.2
       env: BUILD_SYSTEM=python C_COMPILER=gcc CXX_COMPILER=g++
 
     ###
@@ -219,8 +233,8 @@
             - bazel
 
     - os: osx
+      osx_image: xcode12.2
       env: BUILD_SYSTEM=bazel
-      osx_image: xcode11.3
       language: java
 
 before_install:
diff --git a/go/WORKSPACE b/go/WORKSPACE
index e965269..8fb62e5 100644
--- a/go/WORKSPACE
+++ b/go/WORKSPACE
@@ -9,13 +9,15 @@
 
 http_archive(
     name = "io_bazel_rules_go",
+    sha256 = "69de5c704a05ff37862f7e0f5534d4f479418afc21806c887db544a316f3cb6b",
     urls = [
-        "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.19.0/rules_go-0.19.0.tar.gz",
-        "https://github.com/bazelbuild/rules_go/releases/download/0.19.0/rules_go-0.19.0.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
+        "https://github.com/bazelbuild/rules_go/releases/download/v0.27.0/rules_go-v0.27.0.tar.gz",
     ],
-    sha256 = "9fb16af4d4836c8222142e54c9efa0bb5fc562ffc893ce2abeac3e25daead144",
 )
 
-load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
+load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
+
 go_rules_dependencies()
-go_register_toolchains()
+
+go_register_toolchains(version = "1.16")
\ No newline at end of file
diff --git a/java/WORKSPACE b/java/WORKSPACE
index 6f9902a..3ac9d4b 100644
--- a/java/WORKSPACE
+++ b/java/WORKSPACE
@@ -7,8 +7,8 @@
 
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file")
 
-RULES_JVM_EXTERNAL_TAG = "3.0"
-RULES_JVM_EXTERNAL_SHA = "62133c125bf4109dfd9d2af64830208356ce4ef8b165a6ef15bbff7460b35c3a"
+RULES_JVM_EXTERNAL_TAG = "4.0"
+RULES_JVM_EXTERNAL_SHA = "31701ad93dbfe544d597dbe62c9a1fdd76d81d8a9150c2bf1ecf928ecdf97169"
 
 http_archive(
     name = "rules_jvm_external",
@@ -21,7 +21,10 @@
 
 maven_install(
     artifacts = ["junit:junit:4.12"],
-    repositories = ["https://repo1.maven.org/maven2"],
+    repositories = [
+        "https://maven.google.com",
+        "https://repo1.maven.org/maven2",
+    ],
 )
 
 http_file(