pom-dependency-analyzer

Command line tool for generating a changelog, or releasenotes, from a GIT repository.


Keywords
changelog, releasenotes, analyzer, dependencies, maven, pom
License
Apache-2.0
Install
npm install pom-dependency-analyzer@1.6.0

Documentation

Pom Dependency Analyzer

Build Status NPM

This is a command line tool that parses the dot output of mvn dependency:tree and manages a set of json-files with its findings. The output can be used with Pom Dependency Analyzer Web to create a browsable webpage.

Intended to be used to identify, not only dependencies of an artifact, but also its dependants. Something that is often a problem when automating build processes.

You may try this on a public repository but be careful! Is is very likely a violation of its terms of service. See: https://central.sonatype.org/terms.html

Example (change to whatever pom-file you want to examine):

POM_FILE=~/.m2/repository/se/bjurr/violations/violations-maven-plugin/1.19/violations-maven-plugin-1.19.pom \
 && mvn dependency:tree -DoutputType=dot -Doutput=$POM_FILE.dot -f $POM_FILE \
 && npx pom-dependency-analyzer -d $POM_FILE.dot -sf metadata/folder

You can also run with java: java -jar pom-dependency-analyzer-*.jar -d $POM_FILE.dot.

Or all pom:s in a specific folder:

find ~/.m2/repository/se/bjurr -type f -name "*.pom" \
 | xargs -I % sh -c '([ ! -e %.dot ] || grep -Fq "\-SNAPSHOT" %) \
 && mvn dependency:tree -DoutputType=dot -Doutput=%.dot -f % \
 && npx pom-dependency-analyzer -d %.dot -sf metadata/folder \
 && echo $(find ~/.m2 -name "*.pom.dot" | wc -l)/$(find ~/.m2 -name "*.pom" | wc -l)\
 || echo Skipping: %'

You may use Pom Downloader to download pom-files.

You may use Pom Dependency Analyzer Web to create a browsable webpage, and REST API, from this output.

Usage

-ci, --create-image <boolean>              Create an image showing the result 
                                           of analysis.
                                           <boolean>: true or false
                                           Default: false
-d, --dot <path>                           This is the output file from 'mvn 
                                           dependency:tree -Doutput=file.dot -
                                           DoutputType=dot'
                                           <path>: a file path
                                           Default: /home/bjerre/workspace/pom-dependency-analyzer/.
-h, --help <argument-to-print-help-for>    <argument-to-print-help-for>: an argument to print help for
                                           Default: If no specific parameter is given the whole usage text is given
-md, --metadata <string>                   These key/values will be stored 
                                           together with the artifact. Can be used to 
                                           record things like artifacts git repo or 
                                           artifacts Jenkins job URL. [Supports Multiple occurrences]
                                           <string>: any string
                                           Default: Empty list
-sf, --storage-folder <string>             This is where it will store files.
                                           <string>: any string
                                           Default: <user home>/.m2