# Eclipse Projektstruktur (Webprojekte und Fremd-Libraries)



## Marsman (8. Mai 2008)

Hallo Ihr!

Mich würde interessieren, wie ihr eure Web-Projekte bezüglich Libraries anderer Anbieter organisiert. Also zum Beispiel das Einbinden von Libraries von Myfaces, Hibernate usw. Ich sehe grundsätzlich zwei Möglichkeiten:

1. Ablage der Bibliotheken an beliebigem Ort im Filesystem und Einbinden per User-Library. (Window/Preferences/Java/Build Path/User Libraries).

2. Ablage in separaten Java-Projekten im Workspace der Entwicklungsumgebung und Einbinden dieser Projekte in den Webprojekten.

3. Ist beides blöd, besser so und so....

Variante 1 hat den Nachteil, dass sich solche Projekte schlechter auf ein anderes System übertragen lassen. Variante 2 hatte (bei mir) den Nachteil, dass Libraries und Quellen/Javadocs von Fremdanbietern getrennt gehalten werden müssen, weil Eclipse sonst immer versucht, aus den Quellen Code zu generieren.

Wie gesagt, mich würde interessieren, ob es da so eine Art Königsweg gibt, das ganze zu organisieren. Wichtig ist dabei, dass Libraries der Fremdanbieter möglichst nur einmal auf dem Filesystem vorkommen und per BuildPath und Export bei Eclipse eingebunden und deployed werden. Dass die Inhalte der downgeloadeten Archive möglichst bei einander bleiben und nicht wild hin und her kopiert werden müssen.  :wink: 

Titus


----------



## maki (8. Mai 2008)

imho

Maven 2 = Königsweg

Bist damit sogar unabhängig von der IDE, solange Maven2 unterstützt wird (Netbeans, Eclipse, etc.)


----------



## Marsman (8. Mai 2008)

...aha, sehr schön.  :wink: 

Und wie würde man es ohne zusätzliche Tools machen?

Titus


----------



## Wildcard (8. Mai 2008)

> Variante 2 hatte (bei mir) den Nachteil, dass Libraries und Quellen/Javadocs von Fremdanbietern getrennt gehalten werden müssen, weil Eclipse sonst immer versucht, aus den Quellen Code zu generieren.


Das lässt sich über die Einstellungen im source folder regeln.


----------



## byte (8. Mai 2008)

Auf jeden Fall sollten die Libs nicht nur irgendwo im Filesystem rumschwirren. Schließlich willst Du sie ja auch sicherlich in einem Repository einchecken. Bei Webprojekten liegen Libs doch für gewöhnlich in web/WEB-INF/lib.
Ansonsten habe ich meistens ein Projekt, wo alle möglichen Jars drin liegen. Das Projekt wird mit eingecheckt. Von dort kann man alle nötigen Jars dem Classpath hinzufügen.


----------



## Marsman (9. Mai 2008)

byto hat gesagt.:
			
		

> Bei Webprojekten liegen Libs doch für gewöhnlich in web/WEB-INF/lib.



Ja, schon klar. Ich möchte die Libs aber nicht selber kopieren und damit bei mehreren Projekten redundant auf dem System haben. Eclipse soll sich lediglich darauf beziehen und die benötigten Libs beim Deployen ins WAR kopieren.



			
				byto hat gesagt.:
			
		

> Ansonsten habe ich meistens ein Projekt, wo alle möglichen Jars drin liegen. Das Projekt wird mit eingecheckt. Von dort kann man alle nötigen Jars dem Classpath hinzufügen.



Die Anzahl der Libs in diesem einen Projekt kann dann aber sehr groß und das ganze damit unübersichtlich werden. Deshalb wollte ich einfach die ZIPs von Myfaces, Hibernate  usw. entpacken. Somit bleiben die Libs gruppiert und zusammen mit Sourcen, Javadocs usw. Bei einem neuen Projekt möchte ich dann nur noch die benötigten "Lib-Projekte" auswählen. Leider habe ich dann aber diverse Probleme:

- Beim Deployen packt Eclipse die Libs eines "Lib-Projekts" zusammen in jeweils eine einzige Lib!! Damit werden sie vom Webserver nicht erkannt.

- Eclipse versucht, aus den Quellen und Javadocs Code zu generieren.

- Es erscheint für jede Lib der Lib-Projekte die Warnung "Classpath entry ... will nor be exported or published."


Titus


----------

