2009-07-13 16 views
44

Ich habe ein Eclipse-Java-Projekt. Es enthält einen Ordner namens "dist". In diesem Ordner befindet sich eine .jar-Datei.Wie erzeuge ich automatisch eine .jar-Datei in einem Eclipse-Java-Projekt

Wie kann ich in diesem Projekt einrichten, dass diese .jar-Datei immer dann aktualisiert wird, wenn eine der .java-Dateien im Projekt neu kompiliert wurde?

Danke.

+0

Duplikat http://stackoverflow.com/questions/1062941/build-project-into-a-jar-automatically [falsch beendet jar-Tag zu beheben Problem mit und zieht in den .jar-Dateien Edited] -in-eclipse –

Antwort

4

Ein übliches Muster ist, gegen die Klassendateien im Projekt zu arbeiten (Projekte können zu anderen Projektaufbaupfaden hinzugefügt und zur Laufzeit während des Testens verwendet werden), so dass Sie die JAR-Dateien während der Entwicklung nicht benötigen.

Der allgemeine Ansatz zum Hinzufügen eines automatischen Build-Schritts besteht darin, ein Ameisen-Skript zu schreiben, dieses in Ihr Projekt aufzunehmen und dann die Ausführung Ihres Ameisen-Skripts in den Projekt-Build aufzunehmen. So wie Ameisen eine ziemlich straighforward Jar-Building-Aufgabe hat, ist dies nicht zu viel Aufwand, wenn Sie die JAR-Datei die ganze Zeit benötigen. See für einen Starter.

2

Erstellen Sie ein J2EE-Dienstprogramm (Util). Sie können eine Verknüpfung mit einem J2EE-Projekt (ProjectX) erstellen. Wenn Sie die Eigenschaften von ProjectX so bearbeiten, dass sie vom Util-Projekt abhängen, wird Util als Util.jar angezeigt. Wenn die Abhängigkeit deklariert ist, erstellt Eclipse die Util.jar, wenn sie das Util-Projekt erstellen muss. Wenn für das Util-Projekt die automatische Erstellung aktiviert ist, wird die JAR-Datei bei jeder Erstellung des Projekts synchronisiert. Wenn es sich bei Ihrem Zielprojekt nicht um ein J2EE-Projekt handelt, können Sie diese Lösung weiterhin verwenden, jedoch ein Dummy-J2EE-Elternprojekt verwenden. Hier

ist der Link zu der Hilfeseite für die Verwendung der ANT-Task für den Aufbau einer ZIP-Datei aus Eclipse: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_generating_ant.htm

Eine alternative Lösung ist das Zip-Plugin zu verwenden. Wir haben dies vor über 5 Jahren genutzt, aber gestoppt, als WSAD Unterstützung für abhängige Projekte als .jar-Dateien einschloss.

34

Erstellen Sie eine Ant-Datei und teilen Sie Eclipse mit, dass sie erstellt werden soll. Es gibt nur zwei Schritte und jeder ist einfach mit den Schritt-für-Schritt-Anweisungen unten.


Schritt 1 eine build.xml-Datei erstellen und fügen Explorer zu verpacken:

<?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> 

Eklipse sollte ähnlich dem folgenden Screenshot sieht. Beachten Sie das Ant-Symbol in build.xml. Build.xml in Eclipse Project

Schritt 2 der rechten Maustaste auf den Stammknoten in dem Projekt. - Wählen Sie Eigenschaften - Wählen Sie Builders - Wählen Sie Neu - Ant-Build wählen - In der Registerkarte, füllen Sie den Pfad zur Datei build.xml im bin Ordner.

Ant builder configuration Build step - Targets Tab

die Ausgabe prüfen

Die Eclipse-Ausgabefenster (mit dem Namen Console) sollte die folgenden nach einem Build zeigen:

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

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

Das funktionierte perfekt für mich. Dies sollte als die richtige Antwort markiert werden. – cgTag

+1

Das funktioniert gut, außer ich möchte alle Abhängigkeiten auch einschließen! Wie würde ich das tun? – anon58192932

+1

Ich frage das gleiche wie @advocate. Meine JAR-Datei hat jetzt nur noch 346 Bytes, während sie etwa 50 KB haben sollte! – Rodrigo

0

Thomas Antwort funktioniert, aber das Glas Die Datei, die erstellt wird, kann nicht verwendet werden, um die Anwendung tatsächlich auszuführen.

Ich landete mit:

<?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> 

Sie wissen nicht, ob etwas in ant gegeben wurde, da diese Antwort hat sich verändert, aber es dauerte einige Arbeit zu graben es tatsächlich zu bekommen. Viele der Lösungen in Tutorien waren nur teilweise Antworten ...

Wichtigste Änderungen:

  • Added a für die JAR-Datei zu löschen, da es nicht es zu regenerieren, als ich die Ameise Build reran nach dem Wechsel die Build-Datei.
  • Ein Manifest hinzugefügt, um die ausführbare Datei ordnungsgemäß festzulegen.
  • Pull in einigen .jar-Dateien als Libs
  • Pull in den MESSAGE_ Dateien für NLS unterstützen

Netbeans das macht so viel einfacher - einfach nur ein paar Kisten.