我很好奇沒有人知道Grails或Play等框架如何檢測代碼中的變化,並自動觸發重新編譯而無需重新啓動應用程序服務器?有沒有特定於Groovy的編譯器或其動態特性的東西,使它容易發生?Grails或Play如何檢測更改和熱重載類?
對於背景,我在構建過程中有一個自定義的代碼生成階段,我希望能夠具有類似的編輯和刷新功能。
預先感謝任何指針,即使我必須篩選代碼以獲取更大的圖片。
編輯:我應該澄清一下,我不打算在servlet容器中的任何應用程序中完成這些操作,以致無法構建Grails插件。即,我正在使用Groovy,但不使用Grails。
EDIT2:這聽起來像玩有一個特定的DEV模式,這使得這個炎熱的重裝:http://www.playframework.org/documentation/1.1.1/main#lifecycle
據我所知,JRebel的執行通過類加載器精心類的版本,但我假設Web框架Grails的一樣或遊戲沒有把它帶到那個水平。
Luke Daley有一篇關於如何爲Groovy類進行熱重載的精彩文章。它可能對你有用:http://ldaley.com/post/653190105/putting-the-artefact-api-to-work-in-your-grails-app – Dana 2011-03-07 23:54:36
這裏有一些關於JRebel如何做到這一點的迷人細節一種通用的方式。我假設Grails不是那麼複雜! http://www.zeroturnaround.com/blog/reloading_java_classes_401_hotswap_jrebel/ – mckamey 2011-03-08 02:54:57
我將@ Codemwnci的答案標記爲解決方案,但如果有人對Grails有深入瞭解,我仍然對此感興趣。謝謝! – mckamey 2011-03-09 17:45:16