关于IDEA2022开启热部署没有compiler.automake.allow.when.app.running的解决方案

手动热部署

pom.xml文件内引入依赖

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-devtoolsartifactId>
    <optional>trueoptional>
dependency>

关于IDEA2022开启热部署没有compiler.automake.allow.when.app.running的解决方案_第1张图片

构建比重启会快不少,如果不喜欢使用自动热部署的,可以使用此方法

自动热部署

pom.xml文件内引入依赖

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-devtoolsartifactId>
    <optional>trueoptional>
dependency>

在设置里面将自动构建项目和并行编译独立模块这两个勾选

关于IDEA2022开启热部署没有compiler.automake.allow.when.app.running的解决方案_第2张图片

IDEA2022版本的注册表内没有compiler.automake.allow.when.app.running这个选项,需要在设置里的高级设置里开启

关于IDEA2022开启热部署没有compiler.automake.allow.when.app.running的解决方案_第3张图片

开启自动热部署后,修改业务代码,当IDEA失去焦点5秒钟,就会自动进行构建

热部署的范围控制

配置中默认不参与热部署的目录信息如下

  • /META-INF/maven
  • /META-INF/resources
  • /resources
  • /static
  • /public
  • /templates

以上目录中的文件如果发生变化,是不参与热部署的。如果想修改配置,可以通过application.yml文件进行设定哪些文件不参与热部署操作

spring:
  devtools:
    restart:
      # 设置不参与热部署的文件或文件夹
      exclude: static/**,public/**,config/application.yml

关闭热部署

线上环境运行时是不可能使用热部署功能的,所以需要强制关闭此功能,通过配置可以关闭此功能。

spring:
  devtools:
    restart:
      enabled: false

如果当心配置文件层级过多导致相符覆盖最终引起配置失效,可以提高配置的层级,在更高层级中配置关闭热部署。例如在启动容器前通过系统属性设置关闭热部署功能。

@SpringBootApplication
public class SSMPApplication {
    public static void main(String[] args) {
        System.setProperty("spring.devtools.restart.enabled","false");
        SpringApplication.run(SSMPApplication.class);
    }
}

你可能感兴趣的:(解决,java,intellij-idea,maven)