笔者一开始使用Springloaded,发现配置多,比较难用。
后来发现用devtools可以更方便的解决这个问题:
如果需要的话参考我的另一篇博文://www.greatytc.com/p/14963f5fdaae
笔者也是经过一整天的尝试才发现这个解决方案,不敢私藏,遂分享给大家,欢迎大神指正!
完成热部署,总共需要两步。
第一步:生成可以在tomcat里运行的war包:
- 如果使用的是gradle在build.gradle里添加:
configurations {
provided
}
引入依赖:
providedCompile("org.springframework.boot:spring-boot-starter-tomcat")
- 如果使用的是maven
引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>1.5.1.RELEASE</version>
<scope>provided</scope>
</dependency>
注意这里的 <scope>provided</scope>不能省略,具体原因请查看查这里。
不论是使用maven,还是gradle
Application.java修改如下:
@SpringBootApplication
@ComponentScan(basePackages = "me.ice")
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 如果使用gradle则:
点击gradle projects面板下的Tasks-build-clean、Tasks-build-build
至此gradle生成了也可在tomcat里运行的war包(默认build/libs文件夹下)。
如图所示:
- 如果使用maven则
maven 点击maven projects面板下的Lifecycle-clean、Lifecycle-compile
如图所示
第二步:用jrebel完成热部署
第一步非常重要,否则无法继续第二步。其实第一步完成后,配置jrebel热部署和在普通Spring 项目(不是Spring boot)部署步骤完全一致,不懂的话,google,baidu,很多资料。
点击右上角+
选择Tomcat Server-Local
如下图,点击fix,选择exploded那个
如图可以将名称改为Tomcat,也可以自定义
然后在On ‘Update action’
和On frame deactivation
下拉框都选择 Update classes and resources
至此已经完成了Spring boot的热部署:
下面来测试一下
点击下图按钮开始运行项目
修改后的效果,箭头指向为修改前与修改后的对比。
至此大功告成!终于可以睡上一觉了。晚安吧。
注意:
一般Jrebel有15天免费试用期,不过Jrebel对于个人是免费的,在Google上搜索myJrebel然后注册就会送个人免费注册码,
传送带:https://my.jrebel.com/