Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Enforce application server to quicker recompile changed .jsp classes
  • Disable JS and CSS resources merging/caching

To avoid class loading issues in plugins after updating resources pass the "teamcity.development.shadowCopyClasses=true" internal property. Using the option you will:

  • Make TeamCity server create ".teamcity_shadow" directory for every plugin .jar files.
  • Avoid .jar files update on plugin binaries external changes

The following hints can help you eliminate the restart in the certain cases:

  • if you do not change code affecting plugin initialization and change only body of the methods, you can attach to the server process with a debugger and use Java hotswap to reload the changed classes from your IDE without web server restart. Note that the standard hotswap does not allow you to change method signatures.
  • if you make a change in some resource (jsp, js, images) you can copy the resources to webapps/ROOT/plugins/<plugin-name> directory to allow Tomcat to reload them.
    hidden-data
    should work without unpacking - from plugin zip file
  • change in build agent part of plugin will initiate build agents upgrade.

If you replace a deployed plugin .zip file with changed class files while TeamCity server is running, this can lead to NoClassDefFound errors.
To avoid this, set "teamcity.development.shadowCopyClasses=true" internal property. This will result in:

  • creating ".teamcity_shadow" directory for each plugin .jar file;
  • avoid .jar files update on plugin archive change.
hidden-data

Если ты обновляешь жары плагина (или зип) с целью поменять ресурсы - тебе приходится также поменять жар, который используется класслоадером. Довольно с большой вероятностью это приводит к ошибкам класслоадеров при рендеринге жсп плагина - падает NoClassDefFound и подобные ошибки.
Так вот, включение этой проперти позволяет избегать таких ошибок. 
Мне это позволило подменять ресурсы плагина и не рестартовать сервер довольно часто. 

Я думаю, это может быть полезно для тех, кто хочет разрабатывать веб-интерфейс. Да, может быть стоит включать этот режим в дев-може всегда. 



See also:

Panel
bgColor#FFFFFF
borderStyledashed

Extending TeamCity: Developing TeamCity Plugins | Plugins Packaging