最近、プロジェクトをgrails 2.3.0にアップグレードします。コードを変更するたびに自動リロードが機能しないという問題が発生していることを除いて、すべて正常に機能します。これには、すべてのプロジェクトアーティファクト(コントローラー、ドメイン、サービス、gsp、css、javascriptファイル)が含まれます。
古いバージョンのgrailsは正常に機能し、変更を加えるたびにリロードして再コンパイルします。
この質問は人気があり、ジラ、ナブル、ここで数日間検索しましたが、私が見つけたものはどれも私の問題を解決できませんでした(私はこのスレッドでピーターが提案した引用を追加しようとしました http://jira.grails.org/browse/GRAILS-7936 また、このスレッド Grails Project Not Auto Reloading は役に立ちませんでした)。
現在、次の設定でMacbook Proでgrailsを実行しています。
どんな助けも大歓迎です。
Grails 2.3では、リロードはデフォルトではなくなったようです
Grails 2.3では、-reloadingフラグをgrailsコマンドに渡さない限り、リロードエージェントはビルドシステムパス上にありません。
grails-run-appのリロード
ただし、次の構成を使用してbuildConfigでフォークを有効にできます。
forkConfig = [maxMemory: 1024, minMemory: 64, debug: false, maxPerm: 256]
grails.project.fork = [
test: forkConfig, // configure settings for the test-app JVM
run: forkConfig, // configure settings for the run-app JVM
war: forkConfig, // configure settings for the run-war JVM
console: forkConfig // configure settings for the Swing console JVM ]
私はGrails 2.4.3とIntelliJ 13を使用していますが、-reloading
の最後のrun-app
コマンド。
つまり、実行/デバッグ構成を編集するときは、「コマンドライン」の部分にrun-app -reloading
およびNOT -reloading run-app
。
私はこの解決策を見つけました ここ ユーザーlongwaから
Grails 2.4.xは同じサポートを維持しました:
grails -reloading run-app
ファイルシステムで「監視」されたファイルが変更されると、ログにはリロードのステータスが表示されます。
2014-09-23 00:42:02,666 [localhost-startStop-1] INFO conf.BootStrap - Checking for registries in system env
| Server running. Browse to http://localhost:8080/docker-registry-ui
| Compiling 1 source files.....
上記のいずれの提案でも、リロードに関する問題を解決できませんでした。私の場合、問題は私のパスであり、スペースが含まれていました!数日とあごひげの半分を私に取りましたが、最終的にそれを理解しました。私のパスは次のようなものでした:~/Box Sync/path/to/project
。 Box Sync
の単一のスペースは、隠れた悪者でした。このチケットに関連していると信じています https://github.com/grails/grails-core/issues/9344 。
コマンドラインで-reloadingを実行する必要はありません。springloaded.jarの問題です。
grailsHome/lib/org.springframework/springloadedのspringloadedフォルダーをgrails sdk 2.4.3に置き換えます。
https://mega.co.nz/#F!INgVnboD!r7ssrFy9TiCQ50ROqxWt8g
Grails 2.5.0および2.4。*でテストしました