Tempted to go ahead and write your own plugin ? No obligation, but you might want to share it with the Sonar community. In that case hosting your plugin at sonar-plugins.codehaus.org brings you many benefits :
- The community helps you more easily, as well as the community benefits from the plugin
- Free hosting in the subversion repository
- Use JIRA to track issues
- Use Atlassian Bamboo for continuous integration
- Use this wiki for the documentation
- The plugin is available in Update Center, so users can install the plugin directly from the application
- Create an account at Codehaus
- Subscribe to email@example.com
- Send e-mail to firstname.lastname@example.org and tell us your Codehaus ID, so that we can give you a commit access to subversion. You can request access rights to Nemo too.
- The plugin must support Java 5. The Continuous Integration job uses Oracle JDK 1.5.
- The plugin is built with Maven 2.2.* or 3.*.
When you utilize the forge, we request that you respect the following principles :
- Follow Best practices and Sonar Code Style.
- The copyright belongs to whoever wrote the plugin
- The license must be business friendly
- Follow the release process described bellow.
- The directory name is the plugin name.
- The groupId is 'org.codehaus.sonar-plugins' and artifactId is 'sonar-<name>-plugin'. For example the plugin "foo" is stored in the directory "foo" and its artifact id is "sonar-foo-plugin"
Set the following properties :
Code Block title pom.xml lang xml
<project> <parent> <groupId>org.codehaus.sonar-plugins</groupId> <artifactId>parent</artifactId> <!-- The latest version can be found by looking at the tags starting with "parent-" in http://svn.codehaus.org/sonar-plugins/tags/ --> <version>REPLACE_BY_LATEST_VERSION</version> <relativePath>../parent</relativePath> </parent> <artifactId>sonar-foo-plugin</artifactId> <version>1.0-SNAPSHOT</version> <packaging>sonar-plugin</packaging> <name>Plugin name</name> <description>Plugin description</description> <url>http://docs.codehaus.org/display/SONAR/MY+PLUGIN</url> <inceptionYear>2011</inceptionYear> <organization> <name>My Organization</name> <url>http://www.my-organization.com</url> </organization> <issueManagement> <system>JIRA</system> <url>http://jira.codehaus.org/browse/SONARPLUGINS/component/MY-COMPONENT-ID</url> </issueManagement> <scm> <connection>scm:svn:http://svn.codehaus.org/sonar-plugins/trunk/MY-PLUGIN</connection> <developerConnection>scm:svn:https://svn.codehaus.org/sonar-plugins/trunk/MY-PLUGIN</developerConnection> <url>http://svn.sonar-plugins.codehaus.org</url> </scm> ... </project>
- Configure your pom by overriding values provided by parent - see Sonar Plugins Forge Parent POM. Default license is LGPL3.
- Follow Maven POM Code Convention
- Add the plugin to the main pom of the forge
Please send an email to the dev mailing list in order the plugin to be added to our Continuous Integration server.
How to release
The release process is explained in this page.