Overview

This plugin provides a mechanism for allowing a user to send instant message notifications as a goal within Maven. This functionality was inspired by the ImTask Ant tasks written by Jon Madison. The plugin, when completed, will provide support for XMPP/XMPP Secure (Jabber), MSN Messenger, AOL Instant Messager, and Yahoo Messenger clients.

Download

The Maven IM plugin is currently distributed in two formats for user convenience: a tar/gzipped archive and a zipped archive. Each of the archives contains the Maven IM plugin jar file. You can find the install archives here .

Additionally the latest source code can be checked out from the CVS server, and in fact this actually makes installation of the plugin easiest. Instructions for checking out the source can be found here.

Installation

Once the desired archive has been downloaded, it should be unpacked to a suitable location. In the resulting folder you should find the plugin jar file, and a copy of the site documentation. Installing the plugin is then simply a matter of copying the plugin jar file into your $MAVEN_HOME plugin directory along with the existing standard distribution jars. The plugin should then be ready to be invoked.

Conversely, if the latest source has been downloaded from CVS, to install the plugin is simply a matter of typing maven plugin:install in the directory you have just downloaded. Provided you have Maven installed correctly, this should install the plugin, ready for use.

Usage

To test the plugin is working successfully, the minimum needed to get it working is to:

  • Create a valid identity for whichever network you wish to send messages from (i.e. a Jabber account, a AIM ScreenName, a MSN Messenger username, etc...).
  • Set a ${maven.im.message} property for your project in its project.properties file.
  • Set the identifying properties of at least one of the XMPP, MSNM, or AIM identities you have created, including at least one recipient (for full details of the available/required properties see the project Properties document.

Then the plugin can be invoked by typing maven im , which should have the result of sending the message to all defined recipients.

A more useful example would be to send an instant message after the successful completion of a build; this can be accomplished by either adding the im goal to the end of the nightly build specified in your maven.xml file (see the Sample maven.xml file in the Maven project reference for an example.

Alternatively, a postgoal could be specified in the maven.xml file so that an instant message notification is sent if test errors occurred during a build. An example of this might be:

				
<postGoal name="maven-junit-report-plugin:report"> 
    <j:if test="${maven.test.failure}"> 
      <j:set var="maven.im.message" value="JUnit Test Failures reported!" /> 
        <attainGoal name="im:im" /> 
    </j:if> 
</postGoal>	
				
			

I haven't really tried this out properly yet though, so I'm not sure if it will work.

Future

  • At the moment the plugin doesn't support YIM, and the current support for AIM, is pretty flaky. Future versions will address these problems.
  • Your suggestions are always welcome!