Making changes and re-deploying a plugin
Now that we have deployed the test plugin, it is time to add some proper logic, re-deploy the plugin, and test it. Making the changes and re-deploying a plugin is pretty easy. In this recipe, we will quickly look at how to do this.
How to do it...
You can make changes to the plugin and re-deploy it while the JIRA application is still running. Here is how we do it:
Keep the JIRA application running in the window where we ran
atlas-run
.Open a new command window and go to the root plugin folder where your
pom.xml
resides.Run
atlas-cli
.Wait for the command—
Waiting for messages
.Run
pi
. Pi stands for "plugin install" and this will compile your changes, package the plugin JAR, and install it into theinstalled-plugins
folder.
Now, there is one thing you need to keep an eye on! Not all the plugin modules can be redeployed like this prior to JIRA 4.4. The following is a list of the plugin modules that can be reloaded with pi
in JIRA 4.0.x:
ComponentImport
Gadget
ModuleType
Resource
REST
ServletContextListener
ServletContextParameter
ServletFilter
Servlet
WebItem
WebResource
WebSection
If your plugin module is not there in the preceding list or if the changes doesn't seem to be reflected, press Ctrl + C in the command window running atlas-run
and re-run the atlas-run
command. That will re-deploy the plugin and restart JIRA.
Post JIRA 4.1, SDK supports reloading of more modules, but whether it works or not depends on what the module does internally.
JIRA 4.4+ supports reloading of all the plugin modules.
Debugging in Eclipse
It is also possible to run the plugin in debug mode and point your IDE's remote debugger to it.
Following are the steps to do this in Eclipse:
Use
atlas-debug
instead ofatlas-run
.Once the virtual JIRA is up and running with tour plugin deployed in it, go to Run | Debug Configurations in Eclipse.
Create a new
Remote Java Application
.Give a name, keep the defaults, and give the port number as
5005
. This is the default debug port on which the virtual JIRA runs.Happy Debugging!
See also
Setting up the development environment
Creating a skeleton plugin