2009-06-30 7 views
158

Ho un progetto Eclipse in cui voglio mantenere automaticamente il mio progetto Java incorporato in un JAR. So di avere un'opzione per esportare il progetto in un JAR; se faccio un clic destro; ma quello che cerco davvero è che Eclipse crea automaticamente i file .class di un progetto e li inserisce nella cartella di destinazione; dovrebbe anche creare automaticamente un JAR e copiare l'ultimo JAR in alcuni o in una posizione specifica.Costruire progetto in un JAR automaticamente in Eclipse

Esiste un'opzione per configurare Eclipse in modo tale da creare automaticamente i JAR?

Giusto per rendere chiaro per ragazzi, abbastanza paziente da rispondere alla mia domanda; Non sto guardando ad ANT come soluzione; come già lo uso, ma quello che mi piacerebbe qualcosa che viene avviato automaticamente con un trigger basato sul tempo o build immediata con cambiamento.

+0

La mia opinione personale: Usa m2e, l'integrazione Maven di Eclipse, in modo che emetta un vaso per te come parte della costruzione. Recentemente ho provato ad usare Eclipse senza Maven e non posso credere a quanto sia primitivo il costruttore di base di Java. –

risposta

25

Partenza Apache Ant

E 'possibile utilizzare Ant per automatica costruisce con eclipse, here's how

+0

Sto già usando il form di Apache per fare le build e creare Jar. Ma quello che stavo veramente cercando era un modo per aggirare l'apache e usare direttamente eclipse. – Priyank

+0

Mi scuso, non ho letto l'articolo del link in precedenza. In effetti parla di ciò di cui ho bisogno. Grazie. – Priyank

+1

La risposta di Konrad corrisponde più strettamente a ciò che l'OP stava cercando. – lycono

12

Questo è possibile attraverso la definizione di un costruttore personalizzato in Eclipse (vedi link in risposta di Pietro). Tuttavia, a meno che il tuo progetto non sia molto piccolo, potrebbe rallentare il tuo spazio di lavoro in modo inaccettabile. L'autobuild per i file di classe avviene in modo incrementale, ad esempio solo le classi interessate da una modifica vengono ricompilate, ma il file JAR dovrà essere ricostruito e copiato completamente, ogni volta che si salva una modifica.

278

Si desidera un file .jardesc. Non si avvia automaticamente, ma è entro 2 click.

  1. Fare clic destro sul vostro progetto
  2. Scegliere Export > Java > JAR file
  3. Scegli file inclusi e JAR nome di output, quindi fare clic su Next
  4. controllo "Salva la descrizione di questo JAR nello spazio di lavoro" e scegliere un nome per il nuovo file di .jardesc

Ora, tutto ciò che dovete fare è fare clic destro sul file e scegli .jardescCreate JAR e sarà esportarlo nello stesso punto.

+0

Triste che questa risposta non ha ottenuto più upvotes (o migliore risposta) mesi fa. Oh beh, ormai Konrad se n'è andato. –

+25

In Eclipse Galileo, ho dovuto sostituire il passaggio 1 con File -> Esporta -> Java -> file JAR. –

+9

C'è un modo per automatizzare il passo "clic destro -> Crea JAR"? – Asaf

64

Creare un file Ant e comunicare a Eclipse di costruirlo. Ci sono solo due passaggi e ognuno è facile con le istruzioni passo-passo di seguito.


Fase 1 Creare un file build.xml e aggiungere al pacchetto explorer:

<?xml version="1.0" ?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
     <jar jarfile="Test.jar" basedir="." includes="*.class" /> 
    </target> 
</project> 

Eclipse dovrebbe apparire qualcosa di simile alla schermata qui sotto. Notare l'icona Ant su build.xml. Build.xml in Eclipse Project

Fase 2 destro del mouse sul nodo principale nel progetto. - Selezionare Proprietà - Selezionare i Costruttori - Selezionare Nuovo - Selezionare Ant Corporatura - Nella scheda principale, completare il percorso del file build.xml nella cartella bin .

Ant builder configuration Build step - Targets Tab

controllare l'uscita

finestra

The Eclipse di uscita (chiamato Console) dovrebbe mostrare quanto segue dopo una build:

Buildfile: /home/<user>/src/Test/build.xml 

CreateJar: 
     [jar] Building jar: /home/<user>/src/Test/Test.jar 
BUILD SUCCESSFUL 
Total time: 152 milliseconds 

EDIT: Alcuni utili commenti di @yeom una e @betlista

@yeoman Penso che la corretta comprendono sarebbe /.class, non * .class, come la maggior parte delle persone utilizzano pacchetti e di ricerca in tal modo ricorsivo per i file di classe rende più senso di inclusione piatta

@betlista io vi consiglio di non avere build.xml nella cartella src

+0

Ma creerà il file jar ogni volta che cambio file .java (in modo incrementale)? –

+1

Sì, è possibile scegliere i target per la fase di creazione come segue: Dopo una pulizia, creazione manuale, creazione automatica e durante una pulizia. La Build automatica dovrebbe darti quello che vuoi :) –

+8

Dopo aver provato entrambi, questa soluzione sembra molto meglio di quella di Konrad. Richiede di calcolare manualmente alcuni percorsi nel file di build, ma consente la compilazione automatica (invece di 2 clic) e consente una facile personalizzazione (copia il contenitore dopo la creazione, ad esempio). Ecco come creare un file jar quando si ha il file di build nella root e si hanno più livelli nidificati di pacchetti: '' – worldsayshi

1

Utilizzando risposta Thomas Bratt s' sopra, basta assicurarsi che il build.xml sia configurato correttamente:

<?xml version="1.0" ?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
     <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" /> 
    </target> 
</project> 

(Si noti la doppio asterisco - vi dirà costruire per cercare file .class in tutte le sottodirectory.)

0

Creazione di un lanciatore costruttore è un problema da 2 progetti non possono avere lo stesso nome di creazione dello strumento esterno. Ogni nome deve essere unico. Attualmente sto affrontando questo problema per automatizzare la mia build e copiare il JAR in una posizione esterna.

Sto utilizzando IBM Zip Builder, ma questo è solo un aiuto ma non è vero.

Le persone possono provare a utilizzare il plug-in IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download