rexdep の使いかたがわからなかったのでJavaで試した.
$ ./rexdep_java.sh | dot -Tpng -o test.png
or
$ ./rexdep_java.sh com.example | dot -Tpng -o test_pretty.png
システムのimportの依存関係がぜんぶとれてしまうとコード解析の邪魔なので,パッケージ名を指定できるようにした.
rexdep の使いかたがわからなかったのでJavaで試した.
$ ./rexdep_java.sh | dot -Tpng -o test.png
or
$ ./rexdep_java.sh com.example | dot -Tpng -o test_pretty.png
システムのimportの依存関係がぜんぶとれてしまうとコード解析の邪魔なので,パッケージ名を指定できるようにした.
| package com.example; | |
| interface IManager { | |
| } |
| package com.example; | |
| import com.example.MyManager; | |
| import com.example.YourManager; | |
| import android.app.Activity; | |
| public class MyActivity extends Activity { | |
| private MyManager mMyManager; | |
| private YourManager mYourManager; | |
| private MyActivity() { | |
| } | |
| } |
| package com.example; | |
| import com.example.IManager; | |
| public class MyManager implements IManager { | |
| private MyManager() { | |
| } | |
| } |
| #!/usr/bin/env sh | |
| ( | |
| set -eu -o pipefail; \ | |
| # $1があればそれをパッケージ名にする \ | |
| package_name=${1:-}; \ | |
| find ./ -name "*.java" | \ | |
| xargs -J % \ | |
| rexdep --pattern "^import ${package_name}.*\.(\S+);" \ | |
| --format dot % | \ | |
| sed 's/\.java//g' \ | |
| ) |
| package com.example; | |
| import com.example.IManager; | |
| public class YourManager implements IManager { | |
| private YourManager() { | |
| } | |
| } |