2009-09-17 15 views
22

Nel nostro progetto Java in Eclipse, abbiamo diverse configurazioni di build, dato che abbiamo un motore che, quando viene eseguito, crea un jar di installazione per un progetto specifico in base ai parametri che ottiene, quindi ogni configurazione di build esegue la stessa build con parametri diversi per creare l'installazione per un progetto specifico.Assegnazione di una scorciatoia da tastiera per una specifica configurazione di build di Eclipse

Attualmente, devo accedere al pulsante a discesa Esegui configurazione nella barra degli strumenti per avviare il motore e devo selezionare la configurazione di compilazione dall'elenco per eseguire (o eseguire il debug) del motore con il necessario parametri.

Ho configurato Eclipse per eseguire l'ultima esecuzione di esecuzione se il pulsante viene eseguito anziché selezionare dal menu a discesa, ma mi piacerebbe molto avere pulsanti separati nella barra degli strumenti per ogni configurazione di build (o per il mio preferito configurazioni), e ancora meglio, avere una scorciatoia da tastiera per eseguire (o eseguire il debug) una configurazione di build specifica. È possibile?

+0

per il plugin di sviluppo, il modo più semplice per afferrare alcune informazioni è ancora le pagine di aiuto eclissi: http://help.eclipse.org/galileo/ index.jsp? nav =/4 – VonC

risposta

25

sono stato in grado di mettere insieme i passaggi specifici a base di filetto di splintor e ottenere questo lavoro (ho anche aggiunto un anello nella parte superiore che trova qualsiasi lancio esistente con lo stesso nome e lo termina, di fatto rendendo questo un "restart "macro):

Per assegnare scorciatoie da tastiera per specifiche configurazioni di lancio Eclipse, effettuare le seguenti operazioni:

  • Install https://sourceforge.net/projects/practicalmacro/, che si possibile all'interno di Eclipse tramite Aiuto-> Aggiornamenti software: http://puremvcnotificationviewer.googlecode.com/svn/trunk/PracticallyMacroGoogleUpdateSite

  • Riavvia Eclipse e apri Preferenze Eclipse. Avrai una nuova sezione chiamata "Praticamente opzioni macro", espandi quella sezione.

  • Fare clic su "Editor Definizioni macro"

  • cliccare su "New ..."

  • Nell'elenco dei comandi disponibili, scorrere fino a "Script Editor Macro (Beanshell)", selezionarlo e poi cliccare su "Aggiungi->"

  • Quando l'editor di script si apre, aggiungere il seguente codice al codice esistente:

    import org.eclipse.debug.core.DebugPlugin; 
    import org.eclipse.debug.core.ILaunchConfiguration; 
    import org.eclipse.debug.core.ILaunch; 
    import org.eclipse.debug.ui.DebugUITools; 
        try 
        { 
         // Terminate process if it already exists from a previous launch 
         org.eclipse.debug.core.ILaunch[] allLaunches=DebugPlugin.getDefault().getLaunchManager().getLaunches(); 
         for (ILaunch l : allLaunches) 
         {    
         if (l.getLaunchConfiguration().getName().equals("YOUR CONFIG NAME HERE")) 
         { 
          console.write("terminating launch: "); 
          console.writeln(l.getLaunchConfiguration().getName()); 
          l.terminate(); 
          break; 
         } 
         } 
    
         org.eclipse.debug.core.ILaunchConfiguration[] allConfigurations=DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations(); 
         for (ILaunchConfiguration config : allConfigurations) { 
          if (config.getName().equals("YOUR CONFIG NAME HERE")) 
          { 
           DebugUITools.launch(config, "debug"); 
           break; 
          } 
         } 
        } catch (CoreException e) { 
         e.printStackTrace(); 
        } 
        finally{} 
    
  • Nota linea 11 che controlla il nome di configurazione, sostituire con quello che vuoi

  • anche notare DebugUITools.l Comando aunch sulla linea 15, è possibile passare o "run" o "debug"

  • Nella sezione "Macro informazioni" in fondo a questa finestra di dialogo, specificare un nome di macro

  • IMPORTANTE !: Se si vuoi essere in grado di vedere questa macro nella finestra di dialogo di associazione chiave Eclipse standard, devi assegnare un id. Ho iniziato con 1 ...

  • Fare clic su OK

  • espandere la sezione "Generale" e cliccare su "Keys"

  • È ora possibile cercare le possibili combinazioni di tasti per il nome del vostro nuovo macro e assegnalo a qualsiasi chiave che desideri.

  • NOTA: dopo aver assegnato un tasto, spesso dovevo chiudere e riavviare Eclipse prima che il collegamento dei tasti venisse rispettato.

+2

grazie per aver elencato i passaggi esatti. – rguilbault

+1

Stava lavorando alla grande in Indigo, ma non sono in grado di farlo funzionare in Juno! Non succede niente quando premo i tasti associati alla macro. Qualche idea? – electrotype

+0

Risposta eccellente, anche se le righe che menzioni non riflettono lo script che hai aggiunto alla tua risposta. –

5

È possibile definire un plug-in con alcuni launchShortcuts in esso.

This thread è una buona illustrazione.

Ma per legare in realtà, si avrebbe bisogno di definire un comando che esegue tale configurazione, e si legano che comando a un tasto (come in questo plugin.xml configuration file)

la definizione di scelta rapida di una configurazione di lancio:

<shortcut id="org.maven.ide.eclipse.pomFileAction" 
      category="org.maven.ide.eclipse" 
      class="org.maven.ide.eclipse.actions.ExecutePomAction" 
      icon="icons/m2.gif" 
      label="%m2.popup.pomFile.label" 
      modes="run,debug"> 
    <contextualLaunch> 
     <contextLabel label="%m2.popup.pomFile.label" mode="run"/> 
     <contextLabel label="%m2.popup.pomFile.label" mode="debug"/> 
     <enablement> 
     <with variable="selection"> 
      <count value="1"/> 
      <iterate> 
      <and> 
       <test property="org.maven.ide.eclipse.launchable"/> 
       <adapt type="org.eclipse.core.runtime.IAdaptable"/> 
      </and> 
      </iterate> 
     </with> 
     </enablement> 
    </contextualLaunch> 
</shortcut> 

Poi il comando:

<extension point="org.eclipse.ui.commands"> 
    <command id="org.maven.ide.eclipse.pomFileAction.run" 
      categoryId="org.eclipse.debug.ui.category.run" 
      name="%m2.shortcut.description.run" 
      description="%m2.shortcut.description.run"/> 
    ... 
</extension> 

Quindi la chiave vincolante per una scorciatoia da tastiera:

<extension point="org.eclipse.ui.bindings"> 
    <key sequence="M3+M2+X M" 
     contextId="org.eclipse.ui.globalScope" 
     commandId="org.maven.ide.eclipse.pomFileAction.run" 
     schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/> 
</extension> 
+1

Grazie VonC per la risposta rapida. Sono un semplice sviluppatore Java e non ho mai definito un plug-in.Puoi spiegare come lo faccio? Grazie. – splintor

+0

OK, ho installato l'eclipse SDK e ho letto alcuni tutorial su plugnis, e una volta che ne avrò il tempo, inizierò a scrivere questo plugin. Semplicemente non capisco perché debba essere così complicato da avere semplicemente un comando per eseguire una configurazione. Credo di aver davvero bisogno di aggiungere un desiderio al team di eclissi (o scriverlo da solo ...) – splintor

+0

Come si combina 'command' con Launch shortcut? –

9

Sono stato in grado di farlo utilizzando Practically Macro - vedere this thread.

+0

Interessante (+1). Potresti specificare questa risposta con alcuni estratti specifici del thread che hai citato? – VonC

+3

Ho ispezionato il thread per farlo funzionare e ho fornito una risposta con gli esatti passaggi elencati. –

5

Un'alternativa è utilizzare i tasti di scelta rapida per navigare nel menu Esegui e selezionare la configurazione di esecuzione corretta.

Sul mio computer è:

Alt + R, H, Numero

Alt + R si arriva a raggiungere dal menu Esegui, quindi H per Cronologia debug, quindi uno dei numeri alt ernatives.

Per effettuare una configurazione di esecuzione sia sempre visibile nella Debug o RUN menu di storia e di mantenere la sua posizione si può effettuare le seguenti operazioni:

Selezionare il menù Esegui ->Run Configurazioni -> [alcuni config ] ->Comune, quindi selezionare Visualizza nel menu preferiti casella.

(. Questa risposta è una copia di uno dei miei previous answers)

+0

Facile, veloce e pulito. Per me va bene! – Rombus

Problemi correlati