The Apache Maven Changelog Plugin is a plugin for the Java build tool Maven. It generates reports regarding the recent changes in your SCM. To generate the reports for the changes between two git tags/releases you have to add the plugin with this configuration to your pom.xml file.
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changelog-plugin</artifactId> <version>2.3</version> <configuration> <type>tag</type> <tags> <tag implementation="java.lang.String">3.5.0</tag> <tag implementation="java.lang.String">3.5.1</tag> </tags> </configuration> </plugin> </plugins> </reporting>
This will generate a report for alle SCM changes between the tags 3.5.0 and 3.5.1 of the VersionEye Maven Plugin. The connection to the SCM has to be configured in the scm tag, like this for example:
<scm> <connection>scm:git:https://github.com/versioneye/versioneye_maven_plugin.git</connection> <developerConnection>scm:git:https://github.com/versioneye/versioneye_maven_plugin.git</developerConnection> <url>https://github.com/versioneye/versioneye_maven_plugin.git</url> </scm>
To generate the report simply run:
That will generate the default reports and the changes reports. Beside that the command generates a file “target/changelog.xml”. This XML file contains all the information about the changes and is the ground for the HTML reports which are generated by “mvn site”.
I generated the changelog.xml file for the VersionEye Maven Plugin version 3.5.1. The changelog.xml file can be found in this gist. Now that VersionEye has the SCM changes it can display the changes directly on the package page.
Check it out online here.
The revision numbers are even clickable and lead directly to the GitHub commit. That is a little bit magic because the changelog.xml file doesn’t contain any information about the SCM itself. If you want to have the revision numbers clickable you have to add 1 additional line to the changelog.xml with the “revision_base” tag. Like in my changelog.xml file in line 3.
This feature was mainly build for VersionEye Enterprise and is very useful as change management if you have a lot of closed source components in your company.
Your feedback is highly appreciated.