Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/valb3r/classanalyzer
Creates neo4j graph layout of classes and their relationships from a jar-application mapping
https://github.com/valb3r/classanalyzer
code code-analysis graph java neo4j object-relationships
Last synced: 9 days ago
JSON representation
Creates neo4j graph layout of classes and their relationships from a jar-application mapping
- Host: GitHub
- URL: https://github.com/valb3r/classanalyzer
- Owner: valb3r
- Created: 2017-11-01T11:29:19.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-08-08T10:13:47.000Z (about 5 years ago)
- Last Synced: 2024-10-10T05:37:41.143Z (27 days ago)
- Topics: code, code-analysis, graph, java, neo4j, object-relationships
- Language: Groovy
- Size: 166 KB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ClassAnalyzer
Creates neo4j graph layout of classes and their relationships from a jar-application mapping# Sample usage:
Imagine you have microservices project which when compiled is composed of
multiple jars. You want to analyze cross-application and other kinds of
class relationships. Project is composed of subprojects A and B, which had
compiled its jars into following folders:
1. Project A:
- /opt/projectA/lib1
- /opt/projectA/lib2
2. Project B:
- /opt/projectB/libsTo analyze its relationships (in this project root folder) execute cmd:
./gradlew analyzeJars -PappMap="/opt/projectA/lib1,/opt/projectA/lib2=ProjectA;/opt/projectB/libs=ProjectB" \
-PclassInclude="com\..*|org\..*" \
-PmethodInclude="com\..*|org\..*" \
-PdbFile="/home/user/project.graphb"Script will generate class relationship data in /home/user/project.graphb
**Helpful cypher queries:**
[Are here](https://github.com/valb3r/ClassAnalyzer/blob/master/help/CYPHER.md)TODO:
Reduce memory usage by streaming class processing (JavaClass) so they won't get stored in cache