Skip to content

jakartaredhat/jakarta-ee-dependencies

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jakarta EE Dependency Analysis With jQAssistant

Overview

This project provides a setup to scan Maven Central repository for Jakarta EE artifacts and provide GraphML and PlantUML/SVG reports about dependencies of the involved specifications:

jakarta ee dependencies PlatformDependencyDiagram

Tip
See here for further example reports.

Requirements

  • Java Development Kit 8 or later

  • Maven 3.5.x or later

Tip
The following JVM parameters are required if Java 16 or later is used as runtime environment:

set MAVEN_OPTS=--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED

How To Use It

  • Clone the project

  • Execute the following command

    mvn verify
    Note
    The first scan fetches the full index from Maven Central, this will take time.
  • After analysis the following reports are created in the folder target/jqassistant/report:

    • plantuml/jakarta-ee-dependencies_PlatformDependencyDiagram.plantuml|svg: The artifacts and their dependencies as PlantUML component diagram.

    • graphml/jakarta-ee-dependencies_PlatformDependencyDiagram.graphml: The artifacts and their dependencies as GraphML file.

    • plantuml/jakarta-ee-dependencies_SpecificationDependencyDiagram.plantuml|svg: The dependencies grouped by specification as PlantUML component diagram.

    • graphml/jakarta-ee-dependencies_SpecificationDependencyDiagram.graphml: The dependencies grouped by specification as GraphML file.

      Tip
      GraphML reports may be viewed using yEd. After opening a file you should apply a layout, e.g. Layout→Hierarchical (Alt-Shift-H) and property mapping (Edit→Properties Mapper) for nodes should be set to use fqn or name as Label Text.
      An Open Source alternative is Gephi. After opening the file Show Node label(s) must be activated in the tool palette at the bottom and fqn or name selected in Attributes to be displayed as node label.
    • csv/jakarta-ee-dependencies_PlatformDependencyVersionsByArtifact.csv: The dependencies as CSV collection all versions grouped by groupId and artifactId.

Tip
The reports are created using Cypher queries and implemented as jQAssistant rules which are located in jqassistant/jakarta-ee-dependencies.xml.

Known Issues

  • The scan and queries used for analysis might be expensive. If an OutOfMemoryError is reported then the heap size for Maven should be set using the environment variable, e.g. MAVEN_OPTS=-Xmx16G.

About

This project provides a setup to scan Maven Central repository for Jakarta EE artifacts and provide reports about dependencies of the involved specifications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published