Skip to content

Third-Party Dependencies

The following section discusses on how third-party dependencies should be defined.

Third-party dependencies are defined in the third_party folder. There are two main types of dependencies: (1) Maven library dependencies and (2) Docker image versions.

Maven Library Dependencies

The Maven library dependencies are defined in the third_party/dependencies.bzl file. To use the external libraries, add the "flattened" Bazel version of it to the Bazel rule used to compile the code.

Example of a "flattened" Bazel version looks as follows:

  • defined: com.typesafe.akka:akka-actor_2.12:2.6.5
  • flattened: @maven//:com_typesafe_akka_akka_actor_2_12

To query Bazel for all defined Maven dependencies: bazel query @maven//:all | sort

Manually Fetching Dependencies

The Maven dependencies can be manually fetched with:

$ bazel fetch @maven//...

If there are any problems downloading the Maven dependencies, set the RJE_VERBOSE environment variable to true to print coursier's verbose output:

$ RJE_VERBOSE=true bazel fetch @maven//...

Note: If you are on macOS Big Sur and have the Cisco VPN client installed, make sure that the packet filters are not active, or they may be a problem downloading the dependencies.

Docker Image Versions

The required Docker image versions of Sipi and Fuseki are defined in the third_party/versions.bzl file. For the Docker images, the supplied digest hashes are relevant for getting the image. These digest hashes can be found on Docker-Hub when inspecting the tag of the Docker image in question.