본문 바로가기

안드로이드

Android - Module Graph 그리기

반응형

Module을 분리해놓고 보면 Graph로 깔끔한지 보고 싶어 진다.

찾아보니 "gradle-dependency-graph-generator-plugin"라는 라이브러리가 있다.

 

 

GitHub - vanniktech/gradle-dependency-graph-generator-plugin: Gradle plugin that generates dependency graphs from your project.

Gradle plugin that generates dependency graphs from your project. - GitHub - vanniktech/gradle-dependency-graph-generator-plugin: Gradle plugin that generates dependency graphs from your project.

github.com

0.8.0 버전과 0.9.0-SNAPSHOT 버전이 있는데, 0.9.0-SNAPSHOT 버전을 쓰도록 하자.

0.8.0 버전에서는 실행만 시키면 메모리 초과됐다고 에러를 던진다.

 

라이브러리를 적용하고 명령어로 실행시키면

"build/reports/project-dependency-graph/" 위치에다가

이런 그래프를 만들어준다.


readme에 넣고 싶은데, 매번 이걸 직접 최신화할 수는 없다.

 

module 이 매일 바뀌는 건 아니지만, 바뀔 때마다 하기는 너무 귀찮다.

그러면 아래 같은 git-hook을 만들어주면 된다.

# pre-commit
#!/bin/sh

# 1
staged=$(git diff --name-only --staged)
# 2
if [[ $staged == *"build.gradle"* ]]
then
    echo "start Update project dependency graph"
    # 3
    ./gradlew generateProjectDependencyGraph
    # 4
    mv ./build/reports/project-dependency-graph/project-dependency-graph.png ./previews/dependency-graph.png
    rm -r ./build/reports/project-dependency-graph
    # 5
    git add ./previews/dependency-graph.png
fi

1. 현재 stage 된 파일을 전부 가져온다.

2. 그중에 build.gradle 이 포함되어 있으면

3. graph를 만들고

4. 지정한 폴더로 이동시킨다. ( readme에서 사용할 폴더로 ) 그리고 폴더를 지운다. ( 안 지우니까 파일을 안 만들 때가 있는데, 이유는 모르겠다. )

5. stage에 graph를 추가한다.

 

gradle 이 바뀌어도 graph 가 안 바뀌는 경우에도 해당 과정이 돌기는 하지만,

동일한 graph에 대해서는 git 이 알아서 걸러주기 때문에, 같은 게 업데이트될 걱정은 없다.

 


예제로 사용된 프로젝트

 

GitHub - D000L/pokedex-compose: clean architecture pokedex app with compose.

clean architecture pokedex app with compose. Contribute to D000L/pokedex-compose development by creating an account on GitHub.

github.com

반응형