2012-04-10 2 views
22

Ich habe Project1 und Project2. Project1 ist abhängig von Project2. Ich bin irgendwie müde, dass jedes Mal, wenn ich einige Codeänderungen in Project2 mache, ich die Projekt2-JAR-Datei exportieren und in den lib-Ordner von Project1 kopieren muss.Wie auf ein anderes Java-Projekt in Eclipse verwiesen wird

Gibt es eine Möglichkeit, dies automatisch zu erreichen? Oder gibt es eine andere Möglichkeit Project1 darüber zu informieren, dass Project2 einige Änderungen vorgenommen hat?

Im Build-Pfad des Projekts gibt es eine Möglichkeit, Verweise auf andere Projekte in Workspace anzugeben, aber das scheint nichts zu tun? Was macht es eigentlich?

Ich habe irgendwo gelesen, dass ich Deployment-Eigenschaften verwenden kann, um diesen Prozess zu automatisieren, aber ich kann es nicht finden.

UPDATE: Uh, ich bin # -Entwickler C und einige Erfahrung in der Java-Entwicklung haben (vor allem Android-Entwicklung), könnte ich dumme Fragen stellen, so tragen Sie sich bitte mit mir ...

Project1 ist Standard-Java Projekt (läuft auf Client-Rechner, benutzt Swing, etc ..). Project2 ist Dynamic Web Project (für mich unbekannter Grund). Das einzige, was es tut, ist Webservice anzurufen (drittes Projekt, um das ich mir keine Sorgen machen muss) und das Ergebnis zurück an Project1 zu übergeben. Project2 enthält diese Axis2 webserviceStub.java Dateien ... Jeder weiß, und dann muss ich diese Stub-Dateien neu erstellen, dann muss ich die JAR-Datei exportieren und sie nach Project1 verschieben. Project2, obwohl es Web-Projekt ist, ist tatsächlich Code, der auf dem Client ausgeführt wird.

Nur einfache Projektreferenzierung in Build Path funktioniert nicht für mich.

Dank

+2

"Verweise auf andere Projekte in Workspace" sollte funktionieren. – kosa

+0

Sie können auch in die Eigenschaften des Projekts gehen und "is library" auswählen und dann wie jede andere externe Bibliothek in Project1 darauf verweisen. – Chris

+0

Ja, es funktioniert im Build Path für mich. Du verpasst vielleicht einen Schritt. – adarshr

Antwort

34

Rechtsklick auf Project1, dann auf auf Eigenschaften. Wählen Sie im folgenden Dialogfeld Java-Buildpfad, und klicken Sie dann auf die Registerkarte Projekte. Fügen Sie dort Project2 zum Erstellungspfad hinzu.

Wenn Project1 eine Web-App ist, müssen Sie sicherstellen, dass Ihre Deployment Assembly (gleiche Eigenschaften UI) hat Projekt2 auch dort.

+0

Bitte sehen Sie mein Update ... – bobetko

+1

Versuchen Sie, beide Projekte zu aktualisieren (Rechtsklick -> Aktualisieren), nachdem Sie die Stub-Dateien generieren, und sehen, ob das hilft. Wenn sich die Stubs in einem separaten src-Verzeichnis (vom Hauptverzeichnis src) in Project2 befinden, stellen Sie außerdem sicher, dass das Verzeichnis auch in der Registerkarte "Auftrag und Export" von "Java Build Path" für Project2 exportiert wird. – kozyr

+0

Danke. Refresh hat es geschafft. Nun, die Frage ist ... wenn ich Project1 auf den Client deployen will, muss ich dann die JAR-Datei von Project2 einbinden? Warum sollte sich der Originalprogrammierer für das Kopieren von JAR-Dateien entscheiden, um Projektreferenzen zu erstellen? – bobetko

4

Wenn in Eclipse ein Java-Projekt erstellt wird, wird jede .java-Datei aus Quellordnern kompiliert und die .class-Datei wird in einem Ausgabeordner gespeichert. Die Nicht-Java-Dateien aus dem Quellordner werden unverändert in die entsprechende Ordnerhierarchie im Ausgabeordner kopiert.

Beim Hinzufügen von „Referenzprojekte“ in einem Arbeitsbereich in Eclipse über Java Build Path, dh Project2-Project1 ‚s Build-Pfad hinzufügen, was Sie tatsächlich das Projekt Builder erzählt dabei den Ausgabeordner der verwenden Project2 beim Erstellen Project1 (HINWEIS: nicht nur der Ausgabeordner, sondern auch exportierte Bibliotheken).

Wenn also die Antwort von kozyr nicht für Sie funktioniert, überprüfen Sie die "Ausgabeordner" -Konfiguration von Project2.

+0

Danke. Sehr nützliche Information. – bobetko