This plugin is used to create a Changes Report, a JIRA Report and an Announcement text file. It is also able to send the announcement via email.
In order to use this goal, simply create a changes.xml file in the src/changes/ directory. Here's an example of a typical changes.xml, showing the syntax:
<document xmlns="http://maven.apache.org/changes/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd"> <properties> <title>Changes Tester Project</title> <author email="jruiz@exist.com">Johnny R. Ruiz III</author> </properties> <body> <release version="1.1" date="2005-03-01" description="Subsequent release"> <action dev="jruiz" type="add"> Added additional documentation on how to configure the plugin. </action> <action dev="aramirez" type="fix" issue="MPJIRA-11"> Enable retrieving component-specific issues. </action> <action dev="jruiz" type="remove" due-to="Allan Ramirez" due-to-email="aramirez@exist.com"> The element type " link " must be terminated by the matching end-tag. Deleted the erroneous code. </action> </release> <release version="1.0" date="2005-01-01" description="First release"> <action dev="jruiz" type="update"> Uploaded documentation on how to use the plugin. </action> </release> </body> </document>
See the Changes Reference for details regarding the <release> and <action> elements and their attributes.
To generate the Changes Report, insert the Changes Plugin in the <reporting> section of your project's pom.xml
<project> ... <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> <version>2.3</version> <reportSets> <reportSet> <reports> <report>changes-report</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> ... </project>
and execute the site goal to generate the report.
mvn site
If you use the issue attribute in your changes.xml file and have the <issueManagement> element configured in your pom.xml, the report will contain links to the issues in your issue management system. The default configuration produces links to JIRA, but that can be configured.
Note: If you have another issue tracker, make sure that your <issueManagement>/<url> is correct. In particular, make sure that it has a trailing slash if it needs one. The plugin can't add this for you, because it needs to handle different issue management systems. If your issue management system is at http://www.company.com/bugzilla/ the links will not work if you enter http://www.company.com/bugzilla in your pom.xml.
Note: To use the JIRA Report, the <issueManagement> section in the pom.xml of your project must be configured. It might look something like this:
<project> ... <issueManagement> <system>JIRA</system> <url>http://jira.codehaus.org/BrowseProject.jspa?id=10450</url> </issueManagement> ... </project>
To generate the JIRA Report, insert the Changes Plugin in the <reporting> section of your project's pom.xml
<project> ... <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> <version>2.3</version> <reportSets> <reportSet> <reports> <report>jira-report</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> ... </project>
and execute the site goal to generate the report.
mvn site
For info on how to modify the JIRA Report see the Customizing the JIRA Report example.
As usual we start by configuring your project's pom.xml. We add a basic configuration for sending emails and specify the lucky recipients of the announcement emails.
For info on how to change the sender of the email see the Specifying the mail sender example.
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> <version>2.3</version> <configuration> ... <smtpHost>mail.yourhost.com</smtpHost> <smtpPort implementation="java.lang.Integer">25</smtpPort> <toAddresses> <toAddress implementation="java.lang.String">someones@email.com</toAddress> <toAddress implementation="java.lang.String">anothersomeone@email.com</toAddress> </toAddresses> ... </configuration> </plugin> </plugins> </build> ... </project>
You can now generate the announcement by executing the command below:
mvn changes:announcement-generate
If you want to generate the announcement based on JIRA you would either configure it in your pom.xml or you would add the appropriate parameter on the command line, like this:
mvn changes:announcement-generate -DgenerateJiraAnnouncement=true
This is how you send an email with the generated announcement:
mvn changes:announcement-mail