Development-time Best Practices"
Line 54: | Line 54: | ||
= Hotswap-supported JDK = | = Hotswap-supported JDK = | ||
Running your application with [https://github.com/TravaOpenJDK/trava-jdk-11-dcevm TravaOpenJDK11] with JVM option <code>-XX:HotswapAgent</code>. When you modify your java code, re-compile it, the JDK can automatically reload(hot-swap) the new class file that saves the time to restart an application server. | Running your application with [https://github.com/TravaOpenJDK/trava-jdk-11-dcevm TravaOpenJDK11] with JVM option <code>-XX:HotswapAgent</code>. When you modify your java code, re-compile it, the JDK can automatically reload(hot-swap) the new class file that saves the time to restart an application server. | ||
+ | |||
+ | |||
+ | = Jetty Maven Plugin = | ||
+ | Configure [https://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin Jetty maven plugin] in a <code>pom.xml</code> can start your project in a few seconds which speeds up the iteration of writing code and testing. | ||
+ | |||
+ | <syntaxhighlight lang='xml> | ||
+ | <build> | ||
+ | <plugins> | ||
+ | <!-- Run with Jetty --> | ||
+ | <plugin> | ||
+ | <groupId>org.eclipse.jetty</groupId> | ||
+ | <artifactId>jetty-maven-plugin</artifactId> | ||
+ | <version>9.4.27.v20200227</version> | ||
+ | </plugin> | ||
+ | </plugins> | ||
+ | </build> | ||
+ | </syntaxhighlight> | ||
+ | |||
= Spring Boot = | = Spring Boot = |
Revision as of 02:08, 19 January 2022
There are several settings below we recommend you to specify during development time that can improve your developer experience. They can show you more debugging information and disable various caches to get the latest change without restarting a server.
Separate zk.xml for Development
Put these development-time settings in a separate file, so that you can easily remove it for production in the future.
zk.xml
<library-property>
<name>org.zkoss.zk.config.path</name>
<value>/WEB-INF/zk-dev.xml</value>
</library-property>
zk-dev.xml
<system-config>
<disable-zscript>false</disable-zscript>
</system-config>
<!-- show debug information -->
<client-config>
<debug-js>true</debug-js>
</client-config>
<library-property>
<name>org.zkoss.zk.ui.versionInfo.enabled</name>
<value>true</value>
</library-property>
<!-- disable various caches -->
<library-property>
<name>org.zkoss.zk.ZUML.cache </name>
<value>false</value>
</library-property>
<library-property>
<name>org.zkoss.zk.WPD.cache</name>
<value>false</value>
</library-property>
<library-property>
<name>org.zkoss.zk.WCS.cache</name>
<value>false</value>
</library-property>
<library-property>
<name>org.zkoss.web.classWebResource.cache</name>
<value>false</value>
</library-property>
<library-property>
<name>org.zkoss.util.label.cache</name>
<value>false</value>
</library-property>
Hotswap-supported JDK
Running your application with TravaOpenJDK11 with JVM option -XX:HotswapAgent
. When you modify your java code, re-compile it, the JDK can automatically reload(hot-swap) the new class file that saves the time to restart an application server.
Jetty Maven Plugin
Configure Jetty maven plugin in a pom.xml
can start your project in a few seconds which speeds up the iteration of writing code and testing.
<build>
<plugins>
<!-- Run with Jetty -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.27.v20200227</version>
</plugin>
</plugins>
</build>
Spring Boot
With Spring Boot, please reference this development config.