让你用 ZK快速开发的环境设定

本系列文章范例专案

本系列文章中所有的设定与范例程序码都可以在 Github 上的范例专案 zkquickstart 找到,有些细节就交给原始码来说明更清楚。

在使用 zk 开发时,我推荐大家一个可以快速启动、验证结果的环境设定。本章节我只使用我熟悉的 Maven, Intellij IDEA 示范,使用其他工具的人,只要了解原理,你应该可以在你熟悉的工具找到对应的设定方法。

安装 Trava-jdk-11-dcevm

这个免费的 JDK 可以自动侦测 java class 的变动,然後自动重新载入新编译过的 class 档到 JVM,在开发过可以省去重启 java 应用程序服务器,减少等待时间。

在 IntelliJ IDEA 中设定 Maven Runner 加上参数:

-XX:HotswapAgent=core

https://ithelp.ithome.com.tw/upload/images/20210918/200506213ny0dzMgRI.jpg

设定完後,需要以 debug 模式启动服务器。每次我在 IntelliJ 中修改 Java 程序码、重新编译 java 档後(cmd+shift+F9),我就可以看到以下讯息:

https://ithelp.ithome.com.tw/upload/images/20210918/200506210mbRfeDacP.jpg

代表新的 class 已经已经被载入 JVM,我只要重载页面就可以执行新的程序码,相当方便不用忙着重启。

设定 jetty maven plugin

撰写 zul 完後最需要的是看到浏览器绘制的页面结果,如果这时候你需要打包、部署、启动应用程序服务器的话,这个程序做个10 次就会觉得很烦了,而且也很耗时。推荐各位使用 maven jetty plugin,优点是启动速度快,无需打包、部署程序,直接读取既有的 maven 专案目录中的档案来运作应用程序,很适合作为开发时期的轻量应用程序服务器,可以缩短「修改、测试」每个迭代时间。

<build>
   <plugins>
      <plugin>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-maven-plugin</artifactId>
         <version>9.4.43.v20210629</version>
      </plugin>
   </plugins>
</build>

在 pom.xml 中设定完後,要在 intelliJ 中设定 run configuration,设定 goal 为:

jetty:run

https://ithelp.ithome.com.tw/upload/images/20210918/20050621nvpu1X1H90.jpg

启动 jetty 後,如果是范例专案,访问网址

http://localhost:8080/zkquickstart/

就可以看到范例专案首页

结合以上两个设定,每次修改 java 或是 zul 你都不需要重启服务器,即便遇到有少数 hotswap 不能自动载入 class 的情形,重启服务器的时间也只需几秒钟。

使用支援 web fragment 的服务器

因为 ZK jar 都内含 web-fragment.xml,其中已经包含必要的 ZK 设定,使用支援 web fragment 的服务器可以省去在 web.xml 设定 ZK servlet等的步骤。如需要手动设定请参考 web.xml for Servlet 2.4


<<:  【心得】你今天种菜了吗? grid之路-grid的使用(1)

>>:  Day 4 资料单向绑定

[Day 2] 超级简单介绍Vue.js

今天是第二天!!我有记得发文,好耶~~那就直接来看看今天的内容吧~!(好突然) 个人认为在学习新技术...

REG档撰写—登录档脚本其实不难

今天要来介绍的是.reg文件的写法,要实作前请记得先做好备份喔! 这是当作给自己最後的作业,对登录档...

Run HEX File 之 Debug 总集篇

今天就是 Debug 总集篇, 前面都是用猴子自己瞎掰设计的 Code Stream 来验证, 这次...

Angular 深入浅出三十天:表单与测试 Day28 - 自订表单元件

经过了这段时间的练习与学习,相信大家应该越来越能体会 Angular 表单的强大与便利。 不过既然...

Day6一个网站总需要一点首页吧!

延续昨天 今天从首页开始下手 我的首页想放入科内同仁的文章(类似ptt部落格的感觉) 跟之前一样去v...