In this recipe we will look at creating a skeleton plugin. We will use the Atlassian Plugin SDK to create the skeleton.
Open a command window and go to the folder where you want to create the plugin.
Type
atlas-create-jira-plugin
and press Enter.Enter the groupID when prompted. groupID would normally be coming from your organization name and mostly resembles the Java package. Of course, you can enter a different package name as we move forward if you want to keep it separate. groupID will be used to identify your plugin along with artifactID.
For example:
com.jtricks.demo
Enter the artifactId. The identifier for this artifact. Do not use spaces here.
For example:
demoplugin
The default version is 1.0-SNAPSHOT. Enter a new version if you want to change it or press Enter to keep the default.
For example:
1.0
Press Enter if the package value is same as the groupID. If not, enter the new value here and press Enter.
For example:
com.jtricks.mypackage
Confirm the selection when prompted. If you want to change any of the entered values, type N and press Enter.
Wait for the
BUILD SUCCESSFUL
message.
A skeleton plugin is nothing but a set of directories and subdirectories along with a pom.xml
(Maven project object model) file and some sample Java and XML files in the appropriate folders.
Here is a snapshot of how the project will look in Eclipse. It also shows the design view of the default atlassian-plugin.xml
:
As you can see, there is a pom.xml
at the root level and a src
folder. A sample LICENSE
file and a README
file are also created for you at the root level.
Under the src
folder, you will find two folders, main
and test
, with an identical folder structure. All your main Java code goes under the main
folder. Any JUnit tests you write will go into the same location under the test
folder. There is an additional folder, it
, under the test
folder where all the integration tests will go.
You will find the plugin descriptor, that is, atlassian-plugin.xml
, under src/main/resources
with sample values already populated in it. The values in the preceding screenshot are populated from the pom.xml
. In our case, the plugin key will be populated as com.jtricks.demo:demoplugin
when the plugin is built.
You will also notice that the skeleton plugin has some sample resources, which includes a CSS file, a JavaScript file, a plugin icon image, and a plugin logo image. The CSS and JS files are registered as resources under a web-resource
plugin module. The images
folder is also registered as a resource under the same module. The skeleton plugin also has a demoplugin.properties
file, which is registered as an i18n resource
. These files are placeholders and we can use them to add the respective functionality to the plugin.
So, that is our plugin skeleton. All that is pending is some useful Java code and proper module types in the atlassian-plugin.xml
!
Sometimes, for the geeks, it is much easier to run a single command to create a project without bothering about the step-by-step creation. In this section, we will quickly see how to do it. We will also have a look at how to create an Eclipse project if you opt out of installing m2eclipse.
You can ignore the interactive mode by passing parameters such as groupID, artifactId, and so on, as arguments to the atlas-create-jira-plugin
command:
atlas-create-jira-plugin -g my_groupID -a my_artifactId -v my_version -p my_package --non-interactive
For the example values we saw previously, the single line command will be as follows:
atlas-create-jira-plugin -g com.jtricks.demo -a demoplugin -v 1.0 -p com.jtricks.mypackage --non-interactive
You can pick and choose the parameters and provide the rest in an interactive mode as well!
If you are not using m2eclipse, just run the following command from the folder where you have the pom.xml
file:
atlas-mvn eclipse:eclipse
This will generate the plugin project for Eclipse, and you can then import this project into the IDE.
Execute atlas-mvn eclipse:clean eclipse:eclipse
if you want to clean the old project and create again.
With IDEA or m2eclipse, just opening a file will do. That is, you can just import the project using the option File | Import | Existing Maven Projects, and select the relevant project.