2008-12-08 8 views
18

Während die J2EE-Modulreferenzfunktion Ihnen erlaubt, allgemeine Java-Bibliotheksprojekte zu verursachen, kann ich keinen sauberen Weg finden, dies für Webinhalt zu tun.Wie man Webinhalte zwischen Eclipse-Projekten freigibt

Ich habe gemeinsame JSPs, CSS-Dateien, JavaScript-Bibliotheken und sogar Deskriptorfragmente, die ich in einer Reihe von Dynamic Web Projects verwenden möchte, so dass diese Artefakte nur an einem Ort bearbeitet werden, aber in jeden exportiert werden die WAR-Dateien für das dynamische Webprojekt.

Ich bin überrascht, dass ich keinen Weg finden kann, die Wiederverwendbarkeit im Webspace zu fördern, ohne meine eigenen Skripte zu schreiben und in den Exportprozess einzuhaken.

Gibt es eine Möglichkeit, dies zu tun? Danke. Matt.

Antwort

4

Ich glaube, dass das Schreiben eigener Skripte (z. B. benutzerdefinierte Build-Schritte mit ant, leicht konfigurierbar in Eclipse) zu den praktischeren Lösungen gehört.

Sie könnten auch mehrere Webapps erstellen und auf ihre jeweiligen Ressourcen verweisen - dies wäre einfach mit CSS, Bildern und dergleichen, nicht so sehr mit JSP, die auf Ihren Code zugreifen müssen.

Ich kann mir einige Tricks mit tomcats crossContext = "true" -Option für den Kontext (z. B. Webapplikation) vorstellen, so dass eine Anwendung auf Klassen in einer anderen Anwendung zugreifen kann, aber noch nicht ausprobiert.

Sorry - ich glaube, das ist nicht die Antwort, die Sie hören möchten ...

+0

So habe ich, aber es ist überhaupt nicht komfortabel. –

3

Wenn Sie Subversion verwenden, Sie svn:externals verwenden könnten die gemeinsamen Dateien in beiden Projekten zu verweisen. Dann können Sie die gemeinsamen Dateien an einem Ort bearbeiten, und wenn Sie eine svn up tun, werden alle synchronisiert.

+0

Ich habe diesen Ansatz verwendet und es funktioniert ziemlich gut. Trotzdem wäre es schön, wenn es eine Möglichkeit gäbe, eine Art JSP JAR zu definieren, die man als Abhängigkeit behandeln kann. –

12

Ich habe schon lange mit dem gleichen Problem gerungen und bin schließlich auf eine gute Lösung gestoßen: "Linked Folders". Dies ist eine Eclipse-Funktion, die ähnlich wie Symlinks funktioniert. Sie können damit einen einzelnen physischen Ordner in mehreren Projekten abbilden. Das Schöne an dieser Lösung ist, dass keine speziellen Build-Schritte erforderlich sind. Daher kann Eclipse automatisch Änderungen auf Ihrem lokalen Tomcat-Server zum Testen bereitstellen.

Meine Konfiguration ist wie folgt: Ich habe ein Eclipse-Projekt namens "SharedContent". Im WebContent-Verzeichnis befindet sich ein Unterverzeichnis "shareRoot". Alle wiederverwendbaren Dateien - .jsp, .css usw. - befinden sich irgendwo unter SharedContent/WebContent/shareRoot. Dies ist ein dynamisches Webprojekt, so dass alle geeigneten Editoren aktiviert sind, aber ich baue oder veröffentliche es nie.

In meinen anderen Projekten füge ich einen verknüpften Ordner hinzu, der auf shareRoot verweist. In Eclipse 3.6, sind die Schritte:

  1. im Paket-Explorer mit der rechten Maustaste auf das WebContent Verzeichnis des Projekts, das die wieder verwendbaren Dateien beinhalten muss.

  2. Wählen Sie Neu -> Ordner.

  3. Klicken Sie auf die Schaltfläche "Erweitert >>>".

  4. Wählen Sie das Optionsfeld "Link zu einem anderen Standort (Verknüpfter Ordner)".

  5. Klicken Sie im Textfeld darunter auf Durchsuchen.

  6. Wechseln Sie in Ihrer Quellverzeichnisstruktur zu SharedContent/WebContent/shareRoot. Klicken Sie dann auf OK/Öffnen/Fertig stellen, bis alle Dialoge verschwunden sind.

Der freigegebene Inhalt ist jetzt in Ihrem Projekt zugeordnet. Ärgerlicherweise müssen Sie "shareRoot /" in die URL aufnehmen, wenn Sie auf diese Dateien verweisen, aber Sie können dies mit Ihrem bevorzugten URL-Umschreibungsfilter umgehen.

Sie können einen ähnlichen Trick im Java-Quellenbaum verwenden, um Java-Dateien in mehrere Projekte zu mappen. Ich habe damit angefangen, anstatt den geteilten Code in eine JAR-Datei zu integrieren, da die Notwendigkeit entfällt, die JAR-Datei jedes Mal neu zu erstellen, wenn Sie eine Änderung auf Ihrem lokalen Tomcat-Server testen möchten.

-1

haha, ich gebe u eine späte Überraschung

ich bin Chinese, mein Englisch schlecht ist, aber ich kann helfen, u.

Olaf Kock hat Recht, aber seine Antwort nicht perfekt.

Hier ist die perfekte Antwort. du musst die folgende url beziehen, es kann dir helfen.

click here

in der URL-Seite, das Beispiel für die Eigenschaft Content-Box nicht exakt ist, u fllow ich:

wenn Notwendigkeit, eine Datei zu teilen:

a.jsp svn://myhome.com/svn/myproject/trunk/a.jsp 

wenn Notwendigkeit, teile einen Ordner:

xml svn://myhome.com/svn/myproject/trunk/xml 
Verwandte Themen