Gretty 插件实现 Gradle Web 项目热部署
在 build.gradle 配置文件中
buildscript { repositories { jcenter() } dependencies { classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'org.akhikhl.gretty' 或 apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'
常用命令
gradle appRun
另有 appRunWar、appRunDebug、appRunWarDebug
gradle appStart
另有 appStartWar、appStartDebug、appStartWarDebug
gradle jetty* / gradle tomcat*
gretty { // 端口默认 8080 // serlvetContainer 支持 jetty7/8/9,tomcat7/8 // contextPath 设置根路径,默认为项目名称 port = 8080 servletContainer = 'tomcat8' contextPath = '/' }
热部署属性
scanInterval:监视周期,单位为秒,设置为 0 等于完全关闭热部署 scanDir:需要监视的文件夹 recompileOnSourceChange:监视源码变动,自动编译 reloadOnClassChange:编译的类发生改变,自动加载 reloadOnConfigChange:WEB-INF 或 META-INF 发生改变 reloadOnLibChange:依赖发生改变
Gretty 默认如下
scanInterval 设置为 1,每秒扫描改动 1 次 scanDir 默认为下 : ${projectdir}/src/main/java ${projectdir}/src/main/groovy ${projectdir}/src/main/resources ${projectdir}/build/classes/main ${projectdir}/build/resources/main recompileOnSourceChange、reloadOnClassChange、reloadOnConfigChange 和 reloadOnLibChange 默认为 true
fastReload 属性,默认为 true,监听 webapp/中的内容,文件发生改变,无需重启。
除了 src/main/webapp 外,可另外指定资源目录
gretty{ // … extraResourceBase 'dir1', extraResourceBases 'dir2','dir3' // … }
产品生成
gradle buildProduct
生成安装文件 生成目录位于 build/output/${project.name} 结构如下 –build/output/${project.name} |–conf/ => 配置文件 |–runner/ => servlet container 所需库 |–starter/ |–webapps/ => java web 应用 |–restart.bat/sh |–run.bat/sh |–start.bat/sh |–stop.bat/sh 多应用,需在 build.gradle 中配置 product,例如 product { webapp project // include this project webapp ':ProjectA' webapp ':ProjectB' }
项目启动,修改项目文件,自动编译部署
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Gradle 系列之依赖管理
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论