2009-07-13 8 views
44

Possiedo un progetto Java Eclipse. Contiene una cartella denominata "dist". In quella cartella c'è un file .jar.Come si genera automaticamente un file .jar in un progetto Java Eclipse

Come posso impostare le cose in questo progetto per assicurarmi che questo file .jar venga aggiornato ogni volta che uno dei file .java nel progetto è stato ricompilato?

Grazie.

+0

duplicato di http://stackoverflow.com/questions/1062941/build-project-into-a-jar-automatically -in-eclipse –

risposta

4

Un modello comune è quello di lavorare contro i file di classe nel progetto (i progetti possono essere aggiunti ad altri progetti per costruire percorsi e utilizzati in fase di esecuzione durante il test), quindi non è necessario utilizzare i file jar durante lo sviluppo.

L'approccio geenerico per aggiungere una fase di compilazione automatica è scrivere uno script ant, includerlo nel progetto e quindi eseguire l'esecuzione del proprio script ant nella creazione del progetto. Così come la formica ha un compito di costruzione del vaso piuttosto semplice, questo non è troppo difficile se hai bisogno del file jar per tutto il tempo. See per un antipasto.

2

Creare un progetto di utilità J2EE (Util). Ti consente di creare un'associazione con un progetto J2EE (ProjectX). Quando si modificano le proprietà di ProjectX in base al progetto Util, viene visualizzato Util come Util.jar. Con la dipendenza dichiarata, Eclipse costruirà Util.jar quando deve creare il progetto Util. Se è attiva la compilazione automatica per il progetto Util, il file .jar verrà mantenuto sincronizzato ogni volta che viene creato il progetto. Se il progetto di destinazione non è uno J2EE, è comunque possibile utilizzare questa soluzione ma utilizzare un progetto padre fittizio J2EE.

Ecco il link alla pagina di aiuto per l'utilizzo del compito ANT per la costruzione di un file .zip all'interno di Eclipse: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_generating_ant.htm

Una soluzione alternativa è quella di utilizzare il plugin Zip. Lo abbiamo usato più di 5 anni fa ma ci siamo fermati quando WSAD includeva il supporto per i progetti dipendenti come file .jar.

34

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 di uscita The Eclipse (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 
+1

Questo ha funzionato perfettamente per me. Questo dovrebbe essere contrassegnato come la risposta corretta. – cgTag

+1

Funziona alla grande, tranne che voglio includere anche tutte le dipendenze! Come potrei farlo? – anon58192932

+1

Chiedo lo stesso di @advocate. Il mio file jar ora ha solo 346 byte, mentre dovrebbe contenere circa 50kB! – Rodrigo

0

risposta di Thomas funziona, ma il vaso il file che produce non è quello che è possibile utilizzare per eseguire effettivamente l'applicazione.

ho finito con:

<?xml version="1.0" ?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TDSz Data Mover" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
     <delete file="DataMover.jar"/> 
     <jar jarfile="DataMover.jar" basedir="bin/" includes="**/*.class **/Messages*.*" " update="no"> 
      <zipfileset dir="D:/Java/mylib" erroronmissingarchive="true"> 
       <include name="*.jar" /> 
      </zipfileset> 
      <manifest> 
       <attribute name="Main-Class" value="some.package.and.app"/> 
      </manifest>    
     </jar> 
    </target> 
</project> 

Non so se qualcosa è cambiato in formica da quando questa risposta è stata data, ma ci sono voluti un po 'scavare per ottenere effettivamente funzionare. Un sacco di soluzioni in esercitazioni erano risposte solo parziali ...

modifiche principali:

  • Aggiunta una eliminazione per il file jar in quanto non è stato rigenera quando ho reran l'accumulo formica dopo aver cambiato il file di build.
  • Aggiunto un manifest per impostare correttamente il file eseguibile.
  • Tirare in alcuni file .jar come librerie
  • Tirare nei file Messaggio d'per NLS supporta

Netbeans rende molto più facile - basta controllare un paio di scatole.

[Modificato per risolvere problema con la modifica in vaso in modo non corretto terminato e tirare nei file .jar]

Problemi correlati