Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot和Spring boot dev工具集成未显示更新的类更改_Spring_Spring Boot_Gradle_Spring Boot Devtools - Fatal编程技术网

Spring boot和Spring boot dev工具集成未显示更新的类更改

Spring boot和Spring boot dev工具集成未显示更新的类更改,spring,spring-boot,gradle,spring-boot-devtools,Spring,Spring Boot,Gradle,Spring Boot Devtools,我正在尝试按照执行spring引导和spring引导开发工具集成来执行自动重启。当我运行build--continuous任务时,build文件夹中的类将得到更新,但应用程序仍与旧类对话。在本例中,bootRun任务如下所示。我的项目有运行应用程序的自定义任务。现在使用build-continuous对应用程序进行更改时,它正在重建类,但正在运行的应用程序没有显示更改。如何更改我的自定义h2Run任务,以便它加载更改的类?多谢各位 示例中的启动运行任务 bootRun { classpa

我正在尝试按照执行
spring引导
spring引导开发工具
集成来执行自动重启。当我运行
build--continuous
任务时,build文件夹中的类将得到更新,但应用程序仍与旧类对话。在本例中,
bootRun
任务如下所示。我的项目有运行应用程序的自定义任务。现在使用
build-continuous
对应用程序进行更改时,它正在重建类,但正在运行的应用程序没有显示更改。如何更改我的自定义
h2Run
任务,以便它加载更改的类?多谢各位

示例中的启动运行任务

bootRun {
    classpath = sourceSets.main.runtimeClasspath + configurations.dev
}
引导运行的自定义任务

class Run extends JavaExec {
    Run() {
        group "application"
        dependsOn project.tasks.classes, project.tasks.pathingJar
        classpath = project.files("$project.buildDir/classes/main", "$project.buildDir/resources/main", project.tasks.pathingJar.archivePath)
        main = "com.mycompany.Application"
    }
}

task h2Run(type: Run) {
    classpath = sourceSets.main.runtimeClasspath + configurations.dev // this is not working
    description "Start $appName using H2 database"
    args "--spring.profiles.active=dev"
    mustRunAfter 'cleanH2'
    dependsOn copyContentTypeLibraries
}

我浏览了你链接的那篇文章。我没有添加自定义的
运行
类或任务,我只是从文章中抓取了
引导运行
任务。即使没有任何自定义代码,我最初也会经历与您相同的行为

该条规定:

  • 在第一个终端,作为一个连续任务启动Gradle build:
    gradle构建——连续的

  • 在第二个终端,启动Gradle引导运行任务:
    Gradle
    启动运行

  • 如果我按照这个顺序执行这些操作,我也会看到我的类重新编译,但是servlet容器不会接受更改。就像你描述的那样

    但是,如果在应用程序运行后,首先执行
    gradle bootRun
    并执行
    gradle build--continuous
    第二次运行,则每当我编辑java文件时,应用程序都会按预期重新启动


    您是否尝试过在两个终端窗口中按相反顺序执行命令?

    如果没有人能回答,请向上投票。我需要恢复名誉你是对的,我没有添加任何特殊的运行任务。当我们在gradle bootRun任务中添加依赖项时,它应该可以正常工作。