blob: 8c740ebb282e005b823ab4a985be8763be67dd23 [file] [log] [blame]
------
Usage
------
Johnny R. Ruiz III
Allan Ramirez
Dennis Lundberg
------
2011-05-31
------
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied. See the License for the
~~ specific language governing permissions and limitations
~~ under the License.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html
Usage
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.
*How to Generate the Changes Report
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.html}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>${project.version}</version>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
...
</project>
-------------------
and execute the <<<site>>> phase to generate the report.
-------------------
mvn site
-------------------
** Linking to Your Issue Management System
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.
Starting with version 2.4 the plugin comes pre-configured for a whole bunch of
different issue management systems. All you have to to is enter your issue
management system and the URL to it in your POM. It can look like this:
-----
<project>
...
<issueManagement>
<system>JIRA</system>
<url>http://jira.company.com/</url>
</issueManagement>
...
</project>
-----
If you have a previous configuration for <<<\<issueLinkTemplatePerSystem\>>>>
in your POM, you can probably throw that away when you start using version 2.4,
unless you use more than one issue management system.
The following table shows the pre-configured issue management systems and the
templates they use to create links from your Changes Report directly to the
issues in your issue management system.
*---------------+--------------------------------------------------------+
| <<System>> | <<Issue Link Template>> |
*---------------+--------------------------------------------------------+
| Bitbucket | %URL%/issue/%ISSUE% |
*---------------+--------------------------------------------------------+
| Bugzilla | %URL%/show_bug.cgi?id=%ISSUE% |
*---------------+--------------------------------------------------------+
| GitHub | %URL%/%ISSUE% |
*---------------+--------------------------------------------------------+
| GoogleCode | %URL%/detail?id=%ISSUE% |
*---------------+--------------------------------------------------------+
| JIRA | %URL%/%ISSUE% |
*---------------+--------------------------------------------------------+
| Mantis | %URL%/view.php?id=%ISSUE% |
*---------------+--------------------------------------------------------+
| MKS Integrity | %URL%/viewissue?selection=%ISSUE% |
*---------------+--------------------------------------------------------+
| Redmine | %URL%/issues/show/%ISSUE% |
*---------------+--------------------------------------------------------+
| Scarab | %URL%/issues/id/%ISSUE% |
*---------------+--------------------------------------------------------+
| SourceForge | http://sourceforge.net/support/tracker.php?aid=%ISSUE% |
*---------------+--------------------------------------------------------+
| SourceForge2 | %URL%/%ISSUE% |
*---------------+--------------------------------------------------------+
| Trac | %URL%/ticket/%ISSUE% |
*---------------+--------------------------------------------------------+
| Trackplus | %URL%/printItem.action?key=%ISSUE% |
*---------------+--------------------------------------------------------+
| Tuleap | %URL%/?aid=%ISSUE% |
*---------------+--------------------------------------------------------+
| YouTrack | %URL%/issue/%ISSUE% |
*---------------+--------------------------------------------------------+
If you use an issue management system other than the ones above, you need to
{{{./changes-report-mojo.html#issueLinkTemplatePerSystem}configure an issue
link template for it}}.
We would love to extend the table above with more issue management systems,
so if you have a working configuration that is not listed above, please tell
us about it by {{{./issue-tracking.html}creating an issue for it}}.
<<Note:>> 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>>>.
*How to Generate the JIRA Report
<<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>https://issues.apache.org/jira/browse/MCHANGES</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>${project.version}</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
{{{./examples/customizing-jira-report.html}Customizing the JIRA Report}}
example.
*How to Generate the GitHub Report
<<Note:>> To use the GitHub Report, the <<<\<issueManagement\>>>> section in
the <<<pom.xml>>> of your project must be configured. It might look something
like this:
-------------------
<project>
...
<issueManagement>
<system>GitHub</system>
<url>https://github.com/rails/rails/issues</url>
</issueManagement>
...
</project>
-------------------
To generate the GitHub 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>${project.version}</version>
<reportSets>
<reportSet>
<reports>
<report>github-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
{{{./examples/configuring-github-report.html}Configuring the GitHub Report}}
example.
*How to generate and send the Announcement via Email
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
{{{./examples/specifying-mail-sender.html}Specifying the mail sender}} example.
If you have customizations for JIRA that add additional issue types,
or if you are using an IMS that isn't fully-supported in this plugin,
you will need to configure any additional issue types here.
For each issue type, you have to map it to one of three action types:
<add>, <fix>, or <update>. These terms are a bit arbitrary. By default, for JIRA,
<add> corresponds to 'New Feature', <fix> corresponds to 'Bug', and <update>
corresponds to 'Improvement'.
-------------------
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${project.version}</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>
...
<issueTypes>
<add>Story</add>
<fix>Defect, Malfunction</fix>
</issueTypes>
...
</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 need to
configure that in your <<<pom.xml>>>, like this:
-------------------
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${project.version}</version>
<configuration>
...
<issueManagementSystems>
<issueManagementSystem>JIRA</issueManagementSystem>
</issueManagementSystems>
...
</configuration>
</plugin>
</plugins>
</build>
...
</project>
-------------------
To generate the announcement based on <<both>> a <<<changes.xml>>> file and JIRA
you should configure your <<<pom.xml>>> like this:
-------------------
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${project.version}</version>
<configuration>
...
<issueManagementSystems>
<issueManagementSystem>changes.xml</issueManagementSystem>
<issueManagementSystem>JIRA</issueManagementSystem>
</issueManagementSystems>
...
</configuration>
</plugin>
</plugins>
</build>
...
</project>
-------------------
This is how you send an email with the generated announcement:
-------------------
mvn changes:announcement-mail
-------------------