Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mariodujic/Android-multimodule-dependency-graph
Creates a dependency graph for an Android multimodule project.
https://github.com/mariodujic/Android-multimodule-dependency-graph
android dependency-analysis dependency-graph
Last synced: about 2 months ago
JSON representation
Creates a dependency graph for an Android multimodule project.
- Host: GitHub
- URL: https://github.com/mariodujic/Android-multimodule-dependency-graph
- Owner: mariodujic
- Created: 2022-07-22T18:15:04.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-03-17T20:23:53.000Z (over 1 year ago)
- Last Synced: 2024-07-27T10:32:13.181Z (2 months ago)
- Topics: android, dependency-analysis, dependency-graph
- Language: Python
- Homepage:
- Size: 262 KB
- Stars: 58
- Watchers: 1
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-list - mariodujic/Android-multimodule-dependency-graph - Creates a dependency graph for an Android multimodule project. (Python)
README
# Intro
Generates dependency graph for project modules in Android multimodule project. Works only if modules have their project
dependencies declared in their `build.gradle` file. In case of a circular dependency, modules that cause circular
dependency will be marked on a dependency graph with different color.### How it works
Project modules are retrieved from `settings.gradle`, and each module `build.gradle` is checked for a dependencies.
Example where module `app` has a dependency on module `core:navigation`:```groovy
> settings.gradleinclude ':app'
include ':core:navigation'
``````groovy
> app > build.gradledependencies {
implementation project(':core:navigation')
}
```
Generated dependency graph:
Circular dependency graph:
# Instructions
- Install python dependencies from `requirements.txt` file.
- Run `python main.py`
- Enter Android project path.You can also pass in the project path as an argument: `python main.py {project_path}`
Tested on Chris Banes [Tivi](https://github.com/chrisbanes/tivi)
and Google's [Now in Android](https://github.com/android/nowinandroid) projects.