
Show HN: Graffiti – jar analyser - gaurs
http://graffiti.gaurs.io/
======
orless
Some time ago I've started a maven-storyteller-plugin (a version can be found
here: [https://github.com/highsource/storyteller-maven-
plugin](https://github.com/highsource/storyteller-maven-plugin)).

This plugin was intended to solve a simple task: given a Maven project, which
dependencies do you really need and which not? What can (or should) you remove
or exclude? maven-storyteller-pluging analyzed the dependency structure of the
project (JARs), dependencies of classes, build a large graph of what-needs-
what and then could conclude, which dependencies you really need and which
not. I also used graphviz for vizualization.

I still thing this would be a handy tool but never had time to finish and
release the plugin.

~~~
reitanqild
Kickstarter anyone?

------
ge0rg
Very interesting approach. Could you please provide a hosted version of the
demo, that can be viewed on mobile clients?

~~~
gaurs
You can click on the Web Version button for a working demo. The same will
allow you to upload a jar and will generate the output as a zip file available
for download.

~~~
ge0rg
I was looking for a web view of the demo zip, so I could see what it does
without uploading or downloading files.

~~~
gaurs
You can click on the demo link
[http://graffiti.gaurs.io/downloadDemo;](http://graffiti.gaurs.io/downloadDemo;)
This points to already processed commons-lang3-3.5.jar

~~~
farnulfo
You should host the unzip html pages of the example on your : no effort for
user to see what it's look like

~~~
gaurs
Thanks for the feedback. Point taken. Will surely look into it.

------
gaurs
Graffiti is a core java based tool used to analyse jar files. It generates
minimal bootstrap based html files with all the required statistics of the jar
file. It is NOT a UML diagram generation tool.

Note : Please use the WebVersion link to upload jars containing .class files
and not the source .java files

------
glastra
From the downloadable example:

> org.apache.commons.lang3.AnnotationUtils

> The class is part of java.lang.Object package [...]

Interesting package name :)

~~~
gaurs
Oops. Will take care of that.

------
aegnor
I don't really see when I would use the this. When I have JAR with unknown
contents and I want to see version and dependencies of it?

~~~
shakna
At a guess, may be useful when:

* Working with old enterprise libraries ("just use the jar!")

* Optimisation when dealing with a compile to JVM language like Closure or Scala

* Research, such as reverse engineering badly behaved jars.

~~~
haggy
Not really sure why this would be helpful only with Scala in this case. Scala
is not transpiled, it's compiled directly to bytecode just like Java so if it
was helpful with Scala it should be helpful with Java as well.

------
blauditore
There's a typo: "bootsrap" -> "bootstrap"

Also, the demo download link seems to point nowhere.

~~~
gaurs
Thanks for pointing this. The same will be taken care at the earliest.

~~~
sonnyg
Also executablble should be executable.

~~~
gaurs
Thanks for pointing this. The typo has been corrected.

