9
votes

Eclipse manque d'espace de tas sur la construction de fourmis

ext-moi-même et deux collègues travaillent sur un projet GWT et codent dans Eclipse. Le projet grandit et nous apportons plusieurs nouveaux développeurs pour vous aider. J'ai été chargé de mettre en place leurs postes de travail avant de commencer à travailler. Nos systèmes actuels ont tous fonctionné hors de la boîte après le Guide de configuration de base GWT (http://code.google.com/weboolkit/usingeclipse.html)

sur mon système de travail, je n'ai modifié aucune des valeurs par défaut que Eclipse est définie pour la taille de la mémoire.

Le nouveau système exécutera les projets de démarrage simples, alors je sais que j'ai GWT mis en place. Lorsque j'importe notre base de code actuelle, je peux exécuter le site localement sans problème. Lorsque j'essaie d'exécuter le script ANT que nous devons construire notre projet et la pousser à notre serveur Dev, le nouveau système se plaint:

exception dans le fil "Main" Java.lang.outofMemoryError: limite de dépassement de GC dépassée

sur le nouveau système, j'ai modifié le fichier ECLIPSE.INI sur et définir -xmx1024m et j'ai ajouté -xmx1024m sous fenêtre> Préférences> Java> Installation des JRES non tiennes ont résolu le problème. (illustré ici: http://dinu.blog.com/2010/06/02/out -Of-Memory / )

J'ai essayé des versions 32 et 64 bits d'Eclipse, et j'ai même essayé de copier mon dossier Eclipse de travail connu sur le nouveau système sans aucune chance. Est-ce que quelqu'un a des idées?


7 commentaires

Pourquoi devez-vous utiliser un script de fourmis pour construire le projet? Eclipse compose déjà des classes Java pour vous. Il vous suffit de prendre le répertoire où Eclipse génère les classes compilées et le jar.


Nous utilisons le script ANT pour construire une guerre qui est ensuite déployée sur un serveur exécutant Tomcat. Nous avons également le projet de construction automatique à l'aide du script ANT et d'un serveur de construction.


Juste pour la construction de la guerre, vous sortez de la mémoire? C'est bizarre ... Votre script de fourmis n'est-il pas essayé de compiler les cours (encore)?


Il compile la source Java en bytecode, puis compose le bytecode dans JavaScript (ce que GWT appelle «mode de production»), puis du mode de production en une guerre. Ce problème est très étrange. Le projet tel qu'il se trouve à l'heure actuelle ne devrait pas être de la mémoire intensive du tout.


Comme je l'ai dit, votre script de fourmis n'a pas à compiler les cours de Java, ce qui est ce que je pense consomme toute la mémoire (idk savoir pourquoi, mais il arrive que je travaille sur le projet, ressemble à un problème d'éclipse ...) , parce que Eclipse Déjà compile les classes si vous avez le jeu d'options "Construire automatiquement". Vous devez juste prendre le .class 'ES déjà généré et ignorez cette étape.


Merci de votre aide, cela fonctionne en fait, mais cela vous obligerait à maintenir 2 scripts de construction (le serveur de construction n'a pas d'éclipse à la construction automatique pour moi. Je vais simplement avoir la fourmi Devs Exécuter de l'invite CMD. Votre L'option peut finir par être la solution à long terme si l'utilisation de l'invite CMD est trop bourdonnée. Et je modifierai le script de fourmis à faire et "Eclipse Build" ou "Build Server Build".


Oui, c'est la meilleure option.


3 Réponses :


2
votes

susceptible d'augmenter la mémoire de la fourmi exécutée JVM (via les préférences d'outils externes d'Eclipse) comme décrit ici: http://soenkerohde.com/2008/06/Change-eclipse-ant-settings-Qui-you-run-out-of- Mémoire /


1 commentaires

Ce lien est presque identique au lien que j'ai inclus dans ma question initiale. La maxpermsize est la seule différence et, dans mon cas, cela n'a pas aidé.



0
votes

J'ai le même problème. J'ai "résolu" ou mieux évitez it en construisant avec une fourmi de la ligne de commande dans une fenêtre de terminal.

ici Quelqu'un a proposé ajouter une fourchette = oui attribut à la Build.xml File et lecture Ce .


2 commentaires

Cela fonctionne pour moi et c'est un bon travail pour le moment. C'est une autre façon de faire ce que m0skit0 suggérait. Pas idéal mais de cette façon, je n'ai pas besoin de conserver deux scripts de construction (un pour les boîtes de devis et un pour le serveur de construction.)


mauvais lien ce qui est ici ou ce n'est plus



1
votes

Nous avons des problèmes similaires lors de l'exécution de certaines scripts de fourmis. Vous pouvez définir des arguments VM pour la construction de fourmis dans la boîte de dialogue de configuration d'outils externe-> Outils externes. Cliquez sur l'onglet JRE et définissez les paramètres habituels -xmx et -XMS au besoin.


0 commentaires