J'ai récemment mis à niveau notre projet vers Grails 2.3.0. Tout fonctionne bien, sauf que j'ai eu des problèmes avec le rechargement automatique qui ne fonctionne pas chaque fois que je modifie notre code. Cela inclut tous les artefacts de projets - contrôleurs, domaine, services, gsps, css et fichiers javascript.
Mes anciennes versions de Grails fonctionnent correctement et se rechargent et se recompilent chaque fois que je fais un changement.
Je sais que cette question est populaire et j'ai cherché Jira, Nabble et ici depuis des jours maintenant, mais rien de ce que j'ai trouvé n'a pu résoudre mon problème (j'ai même essayé d'ajouter des citations comme Peter l'a suggéré dans ce fil http://jira.grails.org/browse/GRAILS-7936 et aussi ce fil Grails Project Not Auto Reloading n'a pas aidé).
J'exécute actuellement Grails sur un Macbook pro avec les paramètres suivants:
Toute aide serait grandement appréciée.
Il semble que dans Grails 2.3 le rechargement n'est plus la valeur par défaut
Dans Grails 2.3, l'agent de rechargement n'est plus sur le chemin du système de construction, sauf si vous passez l'indicateur -reloading à la commande grails:
grails-rechargement run-app
Cependant, vous pouvez activer le forking dans votre buildConfig à l'aide de la configuration suivante:
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 ]
Plus d'informations: Forked Execution and the Reloading Agent
J'utilise Grails 2.4.3 et IntelliJ 13 et j'ai constaté que je devais avoir le -reloading
partie à la fin du run-app
commande.
En d'autres termes, lorsque vous modifiez vos configurations Run/Debug, dans la partie "Ligne de commande", mettez run-app -reloading
et pas -reloading run-app
.
J'ai trouvé cette solution ici de l'utilisateur longwa
Grails 2.4.x a maintenu le même support:
grails -reloading run-app
Les journaux afficheront l'état du rechargement une fois qu'un fichier "surveillé" change dans le système de fichiers:
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.....
Je n'ai pas pu résoudre mon problème de rechargement par l'une des suggestions ci-dessus. Dans mon cas, le problème était mon chemin, il contenait un espace! Cela m'a pris quelques jours et demi de ma barbe, mais j'ai finalement compris. Mon chemin était quelque chose comme: ~/Box Sync/path/to/project
. Cet espace unique dans Box Sync
était le méchant caché. Je pense que c'est lié à ce billet https://github.com/grails/grails-core/issues/9344 .
Je n'ai pas besoin d'exécuter avec -reloading dans la ligne de commande, son problème de springloaded.jar.
remplacer le dossier springloaded dans grailsHome/lib/org.springframework/springloaded avec le of grails sdk 2.4.3
https://mega.co.nz/#F!INgVnboD!r7ssrFy9TiCQ50ROqxWt8g
J'ai testé dans les Grails 2.5.0 et 2.4. *