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 Platform Discussion :

Comment importer un projet avec une Launch Configuration ?


Sujet :

Eclipse Platform

  1. #1
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut Comment importer un projet avec une Launch Configuration ?
    Bonjour,

    Je dois créer un service d'import, à partir d'un zip qui contient :
    1 répertoire .metadata qui contient la Launch Configuration:
    Dhrystone_stxp70v3 Release.launch dans .metadata\.plugins\org.eclipse.debug.core\.launches
    1 répertoire : Dhrystone_stxp70v3, qui contient le projet :
    .cproject, .project.stxp70xf, .README.txt files
    1 folder inc which contains some h files
    1 folder link which contains some ld and ld.reloc files
    1 folder src which contains some c files
    Donc, pour créer tout ça je recopie le répertoire du projet sous la racine du workspace et la Launch Configuration sous le workspace sous : .metadata\.plugins\org.eclipse.debug.core\.launches.

    Le projet est ajouté correctement, les options de build, sont correctes et visible sous le Workbench.

    Mais la Launch Configration n'apparait pas dans la vue Run configurations.

    Une idée ?
    Merci

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Il te faudrait essayer de relancer Eclipse en faisant un -clean une fois que tu as copié ta LaunchConfiguration.

    Sinon, une autre façon de le faire programmatiquement:
    Tu ajoutes une dépendance vers le plug-in org.eclipse.debug.core.
    Ensuite, tu peux utiliser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
        ILaunchManager launchManager =
            DebugPlugin.getDefault().getLaunchManager();
        IWorkspace workspace = ResourcesPlugin.getWorkspace();
        IProject tmpProject = workspace.getRoot().getProject("External File");
        try {
            // Création d'un projet temporaire pour stocker le fichier de launch.
            if (!tmpProject.exists()) {
                tmpProject.create(null);
            }
            if (!tmpProject.isOpen()) {
                tmpProject.open(null);
            }
            IPath location = new Path("D:/myConfigurations/Snippet2.launch");
            IFile file = tmpProject.getFile(location.lastSegment());
            file.createLink(location, IResource.NONE, null);
            // Récupération de la configuration:
            ILaunchConfiguration launchConfiguration =
                launchManager.getLaunchConfiguration(file);
            if (launchConfiguration != null) {
                // On informe Eclipse qu'une configuration est ajoutée:
                launchManager.getMovedFrom(launchConfiguration);
            }
            tmpProject.refreshLocal(0, null);
        } catch (CoreException e) {
            e.printStackTrace();
        }
    Bon, là, ya une partie création de projet temporaire, mais tu peux très bien t'en passer et utiliser un de tes projets déjà existant dans lequel tu rajouterais la configuration. Cette méthode se passe du redémarrage d'Eclipse.
    Sinon, à priori, Eclipse s'occupe tout seul d'ajouter les launch configurations dans le "Run Configurations" au redémarrage si ces configurations sont présentes dans le workspace.

    Voilà, à+
    Gueritarish

  3. #3
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut
    Ah correct !
    Lorsque je relance mon Eclipse, il est pris en compte !
    J'ai essayé d'ajouter son code mais rien de mieux. C'est le prj.refresh qui est censé "rafraichir" sans fermer ?

    Ca ne marche pas mais je vais regarder dans ce sens.

    J'ai quand même un problème sur le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IPath location = new Path("D:/myConfigurations/Snippet2.launch");
    IFile file = tmpProject.getFile(location.lastSegment());
    file.createLink(location, IResource.NONE, null);
    Mon fichier launch est soit dans mon zip soit dans le .metadata/plugins../.launch
    Je ne sais pas comment construire mon IFile et donc créer le lien.

    J'ai essayé ça, où sFile est le nom du fichier .launch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IPath location = new Path(ws.getMetaArea().getLocation()+ "/" + sfile);
    IWorkspaceRoot root = CCorePlugin.getWorkspace().getRoot();
    IFile file = root.getFileForLocation(location);
    Mon file en retour est null.

  4. #4
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut
    ça marche si je colle le .launch dans le repertoire projet et que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    IPath location = new Path("C:/Dev/WORKSPACE/runtime-New_configuration/.metadata/.plugins/org.eclipse.debug.core/.launches/" + sfile);
    IFile file = prj.getFile(location.lastSegment());
     try {
    	file.createLink(location, IResource.NONE, null);
    	} catch (CoreException e1) {
    		e1.printStackTrace();
    	}
        // Récupération de la configuration:
      ILaunchConfiguration launchConfiguration = null;
    	try {
    		launchConfiguration = launchManager.getLaunchConfiguration(sfile);
    	} catch (CoreException e1) {
    		// TODO Auto-generated catch block
    		e1.printStackTrace();
    	}
        if (launchConfiguration != null) {
            // On informe Eclipse qu'une configuration est ajoutée:
            launchManager.getMovedFrom(launchConfiguration);
        }
        try {
    		prj.refreshLocal(0, null);
    	} catch (CoreException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    pour test entre le IPath et le IFile, je copie à la main le fichier .launch vers la racine de mon projet et là ton code fonctionne très bien, la launchconfiguration est prise en compte tout de suite.

    Comment faire pour ne pas faire cette copie ?
    sinon je le ferais ...

    en tout cas ça avance

  5. #5
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Je vois pas la différence entre ton dernier code et celui que je t'ai donné
    Sinon, le but de la manœuvre est de faire un lien vers un fichier existant en dehors du workspace... Donc, normalement, tu te passes de la copie.
    Tu ne "construis" pas ton IFile. Tu dis juste que dans ton projet, tu as un IFile à l'emplacement IPath.lastSegment() (donc, le nom du fichier). Ensuite, tu vas créer un "lien symbolique" vers ce fichier dans le projet de ton workspace.
    Je ne comprends pas vraiment ton dernier problème

    Voilà, à+
    Gueritarish

  6. #6
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut
    En fait le problème c'est que le launch n'est pas dans le répertoire du projet.

    Si mon IPath pointe sur worskpaces\.metadata\.plugins\org.eclipse.debug.core\.launches\monfile.launch, la manip ne marche pas, le lien symbolique ne doit pas être créé comme il faut ...

    Je reste perplexe ...
    J'ai ajouté la ligne de code suivante, après le createlinkjuste pour tester si mon IFile existait bien.

    Et ça marche ! Si je l'enlève ça marche plus !
    J'ai fait le test 4/5 fois et toujours pareil !

    Alors pourquoi ça fonctionne ?
    Est-ce que d'ajouter ça, ça valide en quelque sorte le IFile ?

    En tout cas merci à toi

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/12/2017, 16h19
  2. Réponses: 2
    Dernier message: 18/02/2009, 11h11
  3. comment remplir 2 champs avec une seule listbox
    Par Didi17 dans le forum Access
    Réponses: 3
    Dernier message: 19/10/2005, 09h42
  4. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52
  5. comment faire un sphère avec une texture ?
    Par fregate dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/09/2005, 03h37

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