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.