2009-12-06 4 views
2

Je suis actuellement en train de porter mon environnement de développement de Windows vers Linux.Comment configurer grails classpath pour ajouter un dossier "src/groovy" (dans un environnement Linux)?

Sous Linux, j'ai remarqué une erreur de compilation "No class found" liée à mes classes dans le répertoire <PROJECT_HOME>/src/groovy. Sous Windows, ça fonctionne bien.

Ce répertoire "src/groovy" est-il inclus dans le CLASSPATH lors de l'exécution de "grails run-app"? Pourquoi se comporte-t-il différemment sous Windows et sous Linux? (GRAILS_HOME et GROOVY_HOME sont définis dans les deux environnements)

Existe-t-il un moyen d'afficher le CLASSPATH actuel dans les journaux?

Et le plus important, comment puis-je résoudre mon problème? (Sauf en réglant le CLASSPATH=<PROJECT_HOME>/src/groovy global)

Merci pour votre aide,

Cordialement,

Fabien.

+0

Exécutez-vous l'application avec 'grails run-app' ou d'une autre façon, peut-être à partir d'un IDE? –

Répondre

3

Oui, src/groovy et src/java sont automatiquement dans le classpath lors de l'utilisation des commandes grails. Je vous recommande de vous assurer que vos déclarations de package sont correctes et que l'erreur ne fait pas référence à un élément référencé par votre code.

+0

Je vais vérifier à nouveau ... mais le même code compile bien sous Windows. Aussi, connaissez-vous hos pour afficher CLASSPATH actuel? – fabien7474

+2

Lorsque vous exécutez une application d'exécution ou une application de test, les fichiers groovy sont tous compilés. Vous pouvez donc rechercher dans $ HOME/.grails//projects//classes/pour voir si vous avez des fichiers src/groovy (sauf si vous avez spécifié grails.work.dir). Vous pouvez essayer Thread.currentThread(). GetContextClassLoader(). GetURLs(), mais cela devrait juste pointer vers les répertoires classes. –

0

Le code fonctionne-t-il toujours après avoir effectué un grails clean sous Windows?

Je me demande si vous avez refaçonné et avez une ancienne version qui continue de tourner dans votre répertoire de classes. Sinon, vérifiez le cas des fichiers .class avec ce que vous attendez (comme John W. a suggéré). Gardez à l'esprit que les systèmes de fichiers Linux sont typiquement sensibles à la casse lorsque Windows ne l'est pas (en tout cas de toute façon).

Pourriez-vous publier l'exception que vous voyez?

+0

Oui. Il fonctionne bien sur Windows après un "grails clean". Je vais essayer d'afficher les répertoires CLASSPATH et de regarder les classes direcvtory. Si après enquête, je ne trouve toujours pas de solution, je vous posterai l'exception et le code source. Merci pour votre aide. – fabien7474

+1

En outre, vous pouvez essayer 'grails run-app -verboseCompile' après' grails clean'. – ataylor

+0

+1 pour un problème sensible à la casse. Je l'ai déjà –

0

CLASSPATH n'est pas pour les sources mais pour les classes binaires compilées. Vous devez configurer votre projet et non Grails.

Vous pouvez examiner l'environnement Grails de grails console - par exemple, évaluez System.getProperty("java.class.path"). La console fonctionne-t-elle?

Il peut être un problème avec votre structure de dossier ou des autorisations - pouvez-vous vérifier src/groovy propriétaire et les droits, il peut appartenir à un autre utilisateur?

Questions connexes