IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Java Discussion :

Refactoring : rename ne fonctionne plus dans un workspace avec plusieurs projets


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut Refactoring : rename ne fonctionne plus dans un workspace avec plusieurs projets
    Je bosse depuis un moment avec Eclipse (3.1), et un problème que je n'avais jamais eu vient d'apparaître : les fonction de refactoring "rename" et "change method signature" ne veulent plus modifier les références vers les objets modifiés quand ils se trouvent dans d'autres projets.

    Exemple :

    Projet 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    package my.business.intr;
     
    Interface MyInterface {
        void setObject(Object obj);
    }
    Projet 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    package my.business.impl;
     
    Class MyClass implements MyInterface {
        public void setObject(Object obj) {
            // ...
        }
    }
    Projet 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    package my.gui;
     
    Interface MyGui {
        public static void main(String[] args) {
            MyClass instance = New MyClass();
            instance.setObject(new Object());
        }
    }
    Je me place sur la définition de la méthode setObject de MyClass, et je fais ALT+MAJ+R (parce que je maîtrise les raccourcis). Eclipse me prévient "'c'est une méthode d'une interface implémentée : voulez-vous refactorer la méthode de l'interface ?". Je réponds oui. Il me demande quel nouveau nom je veux donner et si, oui ou non, je veux mettre à jour les références. Je choisis un nom, je laisse cochée la case "update references" et je clique sur OK. Le résultat est immédiat : le nom de la méthode est bien changé dans l'interface mais pas dans les sous classes ou les appelants.

    Du coup, ça limite beaucoup l'intérêt du refactor...

    Ce problème ne survient que dans un seul workspace sur ma machine. J'ai un collègue à qui c'est arrivé sur seulement quelques projets dans un workspace.

    Si quelqu'un a déjà subit ça ou sait comment le réparer, qu'il me fasse signe

  2. #2
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    Essaye de faire un refresh de ton workspace!

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    Citation Envoyé par menuge
    Essaye de faire un refresh de ton workspace!
    Merci.

    Malheureusement ça ne marche pas.
    J'ai aussi essayé de redémarrer Eclipse, de retirer tous les projets et de les réimporter depuis le filesystem ou depuis CVS.
    Rien à faire.

  4. #4
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    tu peux te réinstaller un autre Eclipse, travailler sur ce workspace et essayer ce refactoring?

  5. #5
    Membre habitué
    Profil pro
    Responsable développement
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable développement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Par défaut
    Citation Envoyé par menuge
    tu peux te réinstaller un autre Eclipse, travailler sur ce workspace et essayer ce refactoring?
    Dans le même ordre d'idée un eclipse -clean permet de faire un peu de nettoyage dans les caches d'Eclipse (ce qui doit revenir au même que la réinstallation)

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Par défaut
    eclipse -clean n'a pas fonctionné.

    Par contre je pense avoir résolu mon problème de la façon suivante :
    Pour chacun de mes projets, dans le dialogue de propriétés, je vais cocher les projets dont il dépend dans la catégorie "Project References" (en fait, ce sont les projets qui se touvent dans la catégorie "Java build path"). Du coup, eclipse a l'air de mieux s'y retrouver dans son arbre de dépendances...

    Maintenant, eclipse arrive à me faire le refactoring souhaité. Et cerise sur le gâteau, il sait à nouveau dans quel ordre recompiler les projets quand je fais un "clean".

    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ctrl + F ne fonctionne plus dans mon IDE
    Par bvsud dans le forum Delphi
    Réponses: 2
    Dernier message: 21/05/2015, 19h37
  2. [XL-2010] Clic droit ne fonctionne plus dans une cellule
    Par rayan27 dans le forum Excel
    Réponses: 4
    Dernier message: 29/04/2015, 14h06
  3. Réponses: 2
    Dernier message: 18/04/2014, 16h32
  4. [AC-2010] Bouton codé en vba ne fonctionne plus dans la base frontale
    Par marg0t dans le forum VBA Access
    Réponses: 10
    Dernier message: 28/08/2013, 15h40
  5. Le code ne fonctionne plus dans une fonction
    Par Yukiho dans le forum Langage
    Réponses: 0
    Dernier message: 12/03/2010, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo