rexdep の使いかたがわからなかったのでJavaで試した
#!/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() {
}
}
package com.example;
import com.example.IManager;
public class MyManager implements IManager {
private MyManager() {
}
}
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;
interface IManager {
}
rexdep の使いかたがわからなかったのでJavaで試した.
$ ./rexdep_java.sh | dot -Tpng -o test.png
or
$ ./rexdep_java.sh com.example | dot -Tpng -o test_pretty.png
システムのimportの依存関係がぜんぶとれてしまうとコード解析の邪魔なので,パッケージ名を指定できるようにした.