2017-10-11 102 views
1

我正試圖按照this example做和spring boot dev tools集成來做自動重啓。當我運行build --continuous任務時,構建文件夾中的類正在更新,但應用程序仍在與舊類進行通信。在這個例子中,​​任務如下。我的項目具有運行應用程序的自定義任務。現在我用build -continuous進行更改時,應用程序正在重建類,但正在運行的應用程序未顯示更改。如何更改我的自定義h2Run任務,以便它加載更改的類?謝謝。春季開機和春季開機開發工具集成不顯示更新後的類更改

例子中的引導運行任務

bootRun { 
    classpath = sourceSets.main.runtimeClasspath + configurations.dev 
} 

爲bootRun

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 
} 
+0

如果沒人能回答,請提出問題。我需要恢復我的聲譽。 ;) – somename

回答

1

我的自定義任務我通過你鏈接到DZone文章走去。我沒有添加您的自定義Run課程或任務,我只是從文章中抓取了​​任務。即使沒有您的自定義代碼,我最初也會遇到同樣的行爲。

物品的狀態:

  1. 在第一終端上,啓動搖籃構建爲連續的任務: gradle build --continuous

  2. 在第二終端,啓動搖籃bootRun任務:gradle bootRun

如果我按照的順序執行這些操作,,我也會看到我的類重新編譯,但是servlet容器並未選擇這些更改。就像你描述的一樣。

但是,如果我這樣做gradle bootRun第一,和gradle build --continuous第二,在應用程序運行後,每當我編輯的Java文件按預期的方式重新啓動應用程序。

您是否曾嘗試以相反的順序在兩個終端窗口中執行命令?

+0

你是對的我沒有必要添加任何特殊的運行任務。當我們使用gradle bootRun任務添加依賴項時,它應該可以工作。 – somename