2011-01-11 11 views
2

Die Site, an der ich gerade arbeite, besteht aus mehreren Java-Projekten und einem Haupt-Webprojekt A, das auf sie verweist. Die IDE, die ich verwende, ist Eclipse Helios.Hinzufügen eines Webprojekts als jar in einer Eclipse-Implementierungsassembly

Was ich versuche zu erreichen ist das Hinzufügen eines neuen Projekts B zum Stapel. Das Projekt wird auch von der Hauptversion referenziert, ist aber selbst ein Webprojekt. Wenn ich der Bereitstellungsassembly AB hinzufüge, packt Eclipse beim Publizieren automatisch als Krieg ein und stellt es auf dem Server WEB-INF/lib bereit.

Ich möchte, dass es als ein Jar bereitgestellt wird, aber auch die Web-Natur des Projekts behalten, da es einige Funktionen (und Tests) hat, die darauf ausgeführt werden. Ich habe ant Aufgaben für den Aufbau eines Glases aus B, aber ich weiß nicht, wie man sie in Eclipse verwendet. Ich bin mir auch nicht sicher, ob es möglich ist, Eclipse dazu zu bringen, ein Jar aus einem Webprojekt zu machen.

Ich kann das Glas manuell (als ein Archiv aus dem Arbeitsbereich), aber das würde bedeuten, dass jedes Mal, wenn jemand alle Projekte reinigt, das Glas für B gelöscht und nicht generiert, da der Build nur kompiliert die Klassen und deploy verpackt sie in den Krieg.

P.S. Ich weiß, dass das Design schlecht ist, aber es ist unmöglich, es zu ändern, da ich nicht die Autorität habe :).

Antwort

1

Der einfachste Weg ist: Datei -> Exportieren ... -> Java -> Jar File

Ameise benutzen: offene Projekteigenschaften zu Builders die gehen, klicken Sie auf neu selec Ant Builder usw.

1

Sie können etwas tun:

  1. eine Shell/Batch-Skript schreiben, dass
    • ANT-Skript von Projekt B ruft die eine JAR-Datei erstellt.
    • und dann ruft er ANT-Skript von Projekt A.
  2. Update-ANT-Skript von Projekt A, eine Kopie Aufgabe hinzufügen. Diese Dateikopieraufgabe verwendet einen relativen Pfad, um die in Schritt 1 erstellte JAR-Datei in das WEB-INF/lib-Verzeichnis von Projekt A zu kopieren.
  3. Wechseln Sie in Eclipse zu External Tool > External Tools Configuration > Program > New Progam und fügen Sie dieses Shell/Batch-Skript hinzu.

Wann immer Sie bauen möchten. Führen Sie das externe Tool von menu.This

  • Ihre Build immer die neueste von Projekt B
  • ANT Aufgaben bleiben klein gewährleisten hat.

ein Webprojekt in einer Eclipse-Deployment Assembly Hinzufügen ich nicht so etwas nicht kannte, bis Thorbjørn Ravn Andersen dies in einem anderen question where I answered hingewiesen.Wie dort erwähnt:

Was in der Bereitstellung passiert, wird nicht durch den Build-Pfad bestimmt, sondern durch den Eintrag Deployment Assembly in den Einstellungen für das dynamische Webprojekt.

Aber vielleicht haben Sie dies bereits versucht.


Edit # 1: feste Grammatik Edit # 2: hinzugefügt weitere Informationen

+0

@ Alex Ciminian mehr Details hinzugefügt – Nishant

+0

Ja, ich habe versucht, die Deployment Assembly (siehe meine Frage). Das Problem ist, dass das Projekt, das ich hinzufügen möchte, ein Web-Projekt ist, also stellt eclipse automatisch ein .war anstelle eines .jar im 'WEB-INF/lib' des Servers bereit und natürlich funktioniert es nicht :). Deine Idee ist ziemlich cool, wenn auch ein bisschen kompliziert. Ich habe kein Problem damit, so etwas zu verwenden, aber ich werde nach einer einfacheren Lösung suchen. Vielleicht kann dies in Eclipse vollständig automatisiert werden, ohne ant zu verwenden. –

+0

@Alex Ciminian das wäre in der Tat ziemlich cool. :) – Nishant

1

fand ich die folgende Lösung, die

  1. Projekt B „Projekt für mich auf Eclipse-Luna arbeitet Facetten ": Wählen Sie" Dienstprogrammmodul "statt" Statisches Webmodul "oder" Dynamisches Webmodul "

  2. Pr oject Eine "Deployment Assembly": entferne "B" und füge es ein weiteres Mal hinzu.

=> Die "Bereitstellen Path" von B ist jetzt B.jar