我正在尝试按this example进行spring boot dev tools
和build --continuous
集成以执行自动重启。当我运行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
}
我的bootRun自定义任务
%include "\C:\Users\jhggg\Documents\SAS_Code\base.sas";
答案 0 :(得分:1)
我浏览了您链接到的DZone文章。我没有添加您的自定义Run
类或任务,我刚刚从文章中抓取了bootRun
任务。即使没有任何自定义代码,我最初也会遇到与您相同的行为。
文章指出:
在第一个终端,启动Gradle build作为连续任务:
gradle build --continuous
- 醇>
在第二个终端,启动Gradle bootRun任务:
gradle bootRun
如果我按照这个顺序执行这些操作,我也会看到我的类重新编译,但servlet容器不会选择更改。就像你描述的那样。
但是,如果我执行gradle bootRun
第一次,gradle build --continuous
第二次,则在应用程序运行后,应用程序会按预期重新启动编辑一个java文件。
您是否尝试以相反的顺序在两个终端窗口中执行命令?