Run the following shell script to create your plugin skeleton. The shell script is part of the Atlassian Plugin SDK. It will download the directories and files that make up a 'Hello World' plugin for your chosen Atlassian application.
'groupID' - Enter a value that identifies your company or project. This value will also be used as the default for your package name, but you can change it in the next few steps below. For example:
'artifactId' - This is an identifier for your plugin. Do not use spaces in the artifactId. For example:
'version' - This is the version number of your plugin. You can leave it at the default or enter your own version number. For example:
'package' - You can enter a specific value or keep the default value, as derived from the groupID that you entered above. For example:
If this process ends with an error message, please refer to the FAQ and troubleshooting section.
The first step when starting a new plugin is to create a skeleton for that plugin. This involves creating plenty of directories and subdirectories, XML files and Java files. This is what the above steps will do for you. We use a Maven archetype, which is basically a plugin template. We have created plugin templates, or archetypes, for each of our pluggable applications.
When you create your plugin skeleton, Maven will download (a lot of) dependencies from the Internet, set up a project skeleton, and prepare you to run unit and functional tests. It creates a new directory structure that looks something like this (screenshot taken from Eclipse IDE):
Take a look at the directory where you created your plugin. Note the following files and directories:
The Project Object Model, POM or , describes everything that Maven needs to know about your plugin: dependencies, source control, authors, tests and deployment locations. The POM is hierarchical, so many properties are inherited.
You will notice that your Maven directory now has a 'repository' sub-directory, for example , with a lot of new directories and files in it. Maven keeps local copies of every dependency it ever downloads in this local Maven repository.