### Updating Gradle Dependencies
If additional Android dependencies are required by the project's build, then
the Gradle build will fail due to missing dependencies. To find out what the
missing dependencies are take the following steps.

1) Updating gradle dependencies for `application-services`, `android-components`
   or `fenix`

The following makefile rules can be used:

  make get_gradle_dependencies_list-application-services
  make get_gradle_dependencies_list-android-components
  make get_gradle_dependencies_list-fenix

which should create the gradle-dependencies-list.txt files in the
corresponding out/$project directory, using nightly's branch.

Note: `android-components` and `fenix` require modified `geckoview` and
`android-components` artifacts to compile successfully. In order to generate the
necessary dependencies for them you need to point to the respective
`android-components` and `fenix` commits our patches are based upon, too, first.
That way the code as Mozilla is shipping it is used for the Gradle dependencies
fetching which should avoid issues caused by broken builds (it is not guaranteed
that all the dependencies are already fetched at the point when the build
breaks). For `fenix` dependencies there is still a manual processing required
afterwards right now as e.g. our tor-android-service related artifacts are not
picked up.


2) Updating gradle dependencies for `geckoview`, `tor-android-service`
   or `tor-onion-proxy-library`

The `geckoview`, `tor-android-service` and `tor-onion-proxy-library`
projects don't have (yet) a makefile rule to generate their
gradle-dependencies-list.txt file, so a few more steps are needed.

For the geckoview project, comment out the following line in the project's
build file:

   export GRADLE_MAVEN_REPOSITORIES="file://$gradle_repo"

Also modify the gradle flags to include the debug option so the download logs will show up:

   export GRADLE_FLAGS="--no-daemon --debug"

Otherwise, when calling gradle in the project's build script replace the
`--offline` flag with `--debug` and remove any `-Dmaven.repo.local` arguments.

Finally, allow network access during the build by setting
`var/container/disable_network/build` to `0` in rbm.conf, and rerun the build.

Dependent artifacts will show up as downloads in the logs. You can pull out
these dependencies into a list by passing the log file to the gradle dependency
list script in the projects/common directory:

`projects/common/gen_gradle_deps_file.sh /path/to/log/file`


3) Copying the resulting `gradle-dependencies-list.txt`

Copy the resulting `gradle-dependencies-list.txt` (from step 1. or 2.)
over the one in the respective project. Then, in the project's config
file, increment the `var/gradle_dependencies_version` and make sure to
restore the project's build file back to original if you modified it.
