DSM maven plugin

Tool for generating report containing Dependency Structure Matrix for the maven site

License

License

Categories

Categories

Maven Build Tools Checkstyle Application Testing & Monitoring Code Analysis
GroupId

GroupId

com.github.sevntu-checkstyle
ArtifactId

ArtifactId

dsm-maven-plugin
Last Version

Last Version

2.2.0
Release Date

Release Date

Type

Type

maven-plugin
Description

Description

DSM maven plugin
Tool for generating report containing Dependency Structure Matrix for the maven site
Project URL

Project URL

https://github.com/sevntu-checkstyle/dsm-maven-plugin
Source Code Management

Source Code Management

https://github.com/sevntu-checkstyle/dsm-maven-plugin

Download dsm-maven-plugin

How to add to project

<plugin>
    <groupId>com.github.sevntu-checkstyle</groupId>
    <artifactId>dsm-maven-plugin</artifactId>
    <version>2.2.0</version>
</plugin>

Dependencies

compile (8)

Group / Artifact Type Version
org.hjug.dtangler.domain : dtangler-domain jar 2.1.0
org.hjug.dtangler.core : dtangler-core jar 2.1.0
com.google.guava : guava jar 16.0.1
org.apache.maven.reporting : maven-reporting-api jar 3.0
org.apache.maven.reporting : maven-reporting-impl jar 2.2
org.codehaus.plexus : plexus-utils jar 3.0
org.freemarker : freemarker jar 2.3.18
org.apache.maven.doxia : doxia-sink-api jar 1.2

test (2)

Group / Artifact Type Version
junit : junit jar 4.10
org.apache.maven.shared : maven-plugin-testing-harness jar 1.1

Project Modules

There are no modules declared in this project.

dsm-maven-plugin Coverage Status Travis

Maven plugin to create HTML report to show dependecies in DSM view.

We use Dtangler library to generate DSM matrix.

Example of report for Checkstyle project: http://checkstyle.sourceforge.net/dsm/index.html

dsm example for packages dsm example inside package

How to use plugin:

  1. Edit your pom.xml like this:
    <project>
        ...
        <reporting>
            <plugins>
                <plugin>
                    <groupId>com.github.sevntu-checkstyle</groupId>
                    <artifactId>dsm-maven-plugin</artifactId>
                    <version>2.2.0</version>
                </plugin>
                <!--  other reporting plugins  -->
            </plugins>
        </reporting>
        ...
    </project>
  1. Then execute following commands:
    mvn clean install site

Instead of install you can use compile, package or other stage, that generates class files.

DSM site part will be placed in target/site/dsm directory

  1. You can run only this plugin instead of all site plugins:
    mvn compile com.github.sevntu-checkstyle:dsm-maven-plugin:dsm
  1. Also you can use option obfuscatePackageNames, that truncates package names to more short form (com.mysite.oneproject.somemodule.package -> c.m.o.somemodule.package for example). It is switched off by default.

There are two way to use it:

a) Edit yours pom.xml and add configuration section:

     <project>
            ...
            <reporting>
                <plugins>
                    <plugin>
                        <groupId>com.github.sevntu-checkstyle</groupId>
                        <artifactId>dsm-maven-plugin</artifactId>
                        <version>2.2.0version>
                        <configuration>
                            <obfuscatePackageNames>true</obfuscatePackageNames>
                        </configuration>
                    </plugin>
                    <!--  other reporting plugins  -->
                </plugins>
            </reporting>
            ...
        </project>

b) Run maven with -DobfuscatePackageNames=true (false)

         mvn compile com.github.sevntu-checkstyle:dsm-maven-plugin:dsm -DobfuscatePackageNames=true

If you don't use it and have long package name they will be just cutted (com.mysite.oneproject.somemodule.package -> ..project.somemodule.package)

Enjoy :)

Related projects: Eclipse Design Structure Matrix plugin

com.github.sevntu-checkstyle

open source initiative

Versions

Version
2.2.0
2.1.4
2.1.3
2.1.2
2.1.1
2.1