com.github.fburato:highwheel-utils

Visualise large class and package cycles

License

License

GroupId

GroupId

com.github.fburato
ArtifactId

ArtifactId

highwheel-utils
Last Version

Last Version

2.0
Release Date

Release Date

Type

Type

jar
Description

Description

Visualise large class and package cycles

Download highwheel-utils

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.fburato/highwheel-utils/ -->
<dependency>
    <groupId>com.github.fburato</groupId>
    <artifactId>highwheel-utils</artifactId>
    <version>2.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.fburato/highwheel-utils/
implementation 'com.github.fburato:highwheel-utils:2.0'
// https://jarcasting.com/artifacts/com.github.fburato/highwheel-utils/
implementation ("com.github.fburato:highwheel-utils:2.0")
'com.github.fburato:highwheel-utils:jar:2.0'
<dependency org="com.github.fburato" name="highwheel-utils" rev="2.0">
  <artifact name="highwheel-utils" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.fburato', module='highwheel-utils', version='2.0')
)
libraryDependencies += "com.github.fburato" % "highwheel-utils" % "2.0"
[com.github.fburato/highwheel-utils "2.0"]

Dependencies

test (3)

Group / Artifact Type Version
junit : junit jar 4.12
org.mockito : mockito-all jar 1.9.0
org.easytesting : fest-assert-core jar 2.0M7

Project Modules

There are no modules declared in this project.

Build Status

Highwheel

Highwheel is a tool to detect and visualise class and package cycles in Java code.

It differs from other tools such as

In that it generates visualisations of the detected cycles and provides much more data about the detected dependencies.

To make it easier to make headway when working with legacy code, Highwheel also breaks down large cycles into their smaller elemental sub-cycles for easier comprehension.

Cycles are detected using tarjen's algorithm.

As fixing package cycles often involves moving classes between packages highwheel also reports unit tests that look to have been left the wrong package when their testee is moved ( for maven only in latest snapshot ).

Documentation

TODO

But briefly

Maven

Analyse a single project, or a each module within a multi-module project individually.

mvn org.pitest:highwheel-maven:analyse 

Analyse a multi-module project as a single component

mvn -DparentOnly=true org.pitest:highwheel-maven:analyse 

By default assumes that your package names match your group id. If not can supply a filter using Glob syntax.

mvn -DclassFilter=com.bigcompany.* org.pitest:highwheel-maven:analyse 

All options can of course be configured in your pom.xml.

Seperate goal dumps decompiled bytecode to disk

mvn org.pitest:highwheel-bytecode:asmDump

Ant

Create a task and pass in an analysisPath and filter

<taskdef name="highwheel" classname="org.pitest.highwheel.ant.AnalyseTask" classpathref="<path to jar>"/>

<target name="highwheel" depends="compile">
  <highwheel analysisPathRef="code.path" filter="com.example.*"/>
</target>

Versions

Version
2.0