This pages discusses development of Jenkins core and plugins with JRebel to enhance the development experience.
You can get your free license for non-commercial use here: https://my.jrebel.com.
Runnning Maven with JRebel
To interactively test Jenkins plugins during development with JRebel, start Maven like this:
Similarly, for Jenkins core, start Maven like this:
jrebel.xml is not required to make this work.
What can be reloaded?
Newer versions of Jenkins have better support for JRebel
Reloadable without JRebel
- All the view pages (Jelly, Groovy, ...)
- Help files, images, CSS, and other web resources
Reloadable with debugger hotswap
- Signature compatible code only changes
Reloadable with JRebel
- Signature breaking changes to the model classes (see the feature list for what can be reloaded and what cannot)
Since Jenkins 1.421
- HTTP binding of objects, including web-bound methods (such as doXyz), getter/field traversal (such as getXyz), and so on
- What's exposed to the remote API
Not reloadable yet
- Addition/removal of the extension point implementation