Regarding the TeamCity Documentation a plugin developer has to restart the server, to see code changes. JetBrains recommends to use Javas HotSwap. But as we all know (at least the JRebel fans), HotSwap has a lot of limitations. For example, it is not possible to change method parameters or introduce new methods.
JRebel is a great alternative and doesn’t have these limitations. And as it turned out, it is very simple to use JRebel with TeamCity plugin development: Just create the rebel.xml and put in the plugins resource path. The file has to reside on the top most hierarchy of the jar.
To generate the rebel.xml, just use the IDE plugins. In IDEA for example, I right-clicked on the project name and select generate rebel.xml and then I stored the generated file in the resources-directory.
Now, I can develop the Piazza plugin without restarting the TeamCity over and over again. Thank you, ZeroTurnaround!