1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- ### 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.
|