Eclipse Verständnisfrage Eclipse+Maven+Dependencies

cjs1976

Mitglied
Hallo!

Arbeite erst seit Kurzem mit Maven. Bisher hatte ich in meinen Eclipse-Projekten immer einen Ordner libs, da lagen alle 3rd Party Jars, die waren im Build-Path hinzugefügt, und den Rest habe ich von Hand gemacht.

Nun habe ich mir Maven istalliert, natürlich mit dem Eclipse-PlugIn, und es läuft soweit alles brav. Ich habe auch meine Lieblings-Jars in mein lokales Repository installiert, weil offiziell nur alte Sachen verfügbar waren. Die Dependencies scheinen auch korrekt zu funktionieren, weil ein Build ein perfektes Ergebnis liefert.

Nun verstehe ich aber den Sinn nicht ganz. Jetzt muss ich ja wieder alles doppelt machen. Ich habe wieder den libs Ordner in Eclipse wo meine Jars liegen, die sind dann auch dem Build-Path zugewiesen, und beim Build holt Maven die Dependencies aus dem lokalen Repository (und nicht vom aktuellen Projekt).

Für mich würde das Ganze aber nur Sinn machen, wenn ich mir die doppelte Verwaltung sparen könnte (1x libs / 1x lokales Repository). Nach meinem Verständnis wäre es am Besten, wenn ich ein lokales Repository habe, das ich pflege, und meine Eclipse-Prjekte greifen darauf zu.

Und dann stellt sich noch die Frage, ob es nicht auch noch schöner wäre, wenn ich die 3rd Party Jars nicht in mein SVN kopieren müsste, sondern wenn beim Check-Out die Jars automatisch geholt werden würden.

Ich weis das sind Anfängerfragen, und da gehts eher um Organisation, aber ich bin kein Profi, und gegoogelt habe ich schon (sonst wäre ich ja auch nicht so weit gekommen), aber so eine Standardrichtlinie (oder was auch immer) für den Umgang mit Eclipse+Maven+Dependencies (bzw. 3rd Party Jars) konnte ich nicht finden.

Danke für jeden Hinweis...
 

tagedieb

Top Contributor
Maven by Example bietet einen schnellen Einstieg in Maven. Das durchzuarbeiten kann ich dir nur empfehlen. :rtfm:

Zu deinem Problem. Du solltest entweder den libs ordner oder Maven verwenden. Aber nicht beides sonst gibts, wie du bereits erkannt hast, ein Chaos.

Ich empfehle dir alle libs in dein local Maven repository zu legen und dies zu verwenden. Wenn die Libraries die du benoetigst nicht im Maven Repository vorhanden oder veraltet sind kannst du die Libraries auch manuel kopieren (musst du nur einmal machen). I have a jar that I want to put into my local repository. How can I copy it in?
 

mvitz

Top Contributor
Um was für "Ich habe auch meine Lieblings-Jars in mein lokales Repository installiert, weil offiziell nur alte Sachen verfügbar waren." dreht es sich hier eigentlich?

Bevor ich das mache, sollte man auf jeden Fall in die gängigen Maven Repositories gucken, ob es sich nicht z.B. bei JBoss, Apache, etc. befindet, das erspart einem viel Arbeit. Finden kann man diese z.B. über Maven Repository: Search/Browse/Explore
 

cjs1976

Mitglied
Hallo!

Oh Mann, hin und wieder bin ich einfach nur blind! Die Libs von den Maven-Dependencies sind eh direkt im Eclipse-Projekt unter der Gruppe 'Maven Dependencies' verfügbar. Das ist jetzt echt peinlich, aber das erledigt nun meine ursprüngliche Frage.

Kurz zu den Dependencies im aktuellen Projekt:

* jdom-1.1.1.jar (Jdom)
* util-1.07.00.jar (Ostermiller)
* poi-3.7-20101029.jar (Apache POI)
* commons-1.1.1.jar (Jgoodies)
* froms-1.4.0.jar (Jgoodies)
* swingx-1.6.2.jar (SwingX)

Ein paar konnte ich gar nicht finden. Bei ein paar ist die Versionierung etwas eigenartig. Und ein paar gibts doppelt, oder auch in anderen Repositories/Projekten. Da gehe ich lieber auf nummer sicher.

Danke,
Christian.
 

mdoninger

Mitglied
Du kannst dir auch einfach einen Repository Manager einrichten (z. B. Nexus von Sonatype), und dort deine benötigten Jars, die es nicht in anderen Repositorys gibt, installieren. Dann konfigurierst du Maven so, dass es standardmäßig auf den Repomanager zugreift.
 

cjs1976

Mitglied
Hallo!

Das mit dem eigenen echten Repository-Manger wäre schon eine gute Idee, aber das ist zu kompliziert für das Bisschen, wo ich es brauche.

Cool wäre, wenn es eine Lösung wie bei SVN gäbe, wo man einfach auf dem Windows-Server ein Programm installiert, und das lässt sich wie eine Windows-Anwendung bedienen, und man muss sich im Hintergrund um nichts kümmern, und nicht selbst rumbasteln.

Wenn das jemand professionell braucht, dann ist das schon gut, nur so wie n meinem Fall für ab und zu, da steht das meiner Meinung nach nicht dafür.

Gruß,
Christian.
 

cjs1976

Mitglied
Ich bekomme es nicht zum Laufen! Ich dachte immer, dass ich für eine WAR-Datei einen entsprechenden JEE-Server (zB Glassfish) brauche, aber ich habe das jetzt mal wie von Dir beschrieben probiert, und das Ding lässt sich nicht starten:

Ich habe mir von der Webseite die neueste Version heruntergeladen: nexus-webapp-1.9.0.2.war

Und wenn ich das dann starten will, kommt die Fehlermeldung: Faild to load Main-Class manifest attribute from
 

mdoninger

Mitglied
ah sorry, hab das falsch erklärt. Für die Standalone-Version brauchst du die Datei nexus-oss-webapp-1.9.0.2-bundle.tar.gz oder .zip (bei Windows dann zip). Die entpackst du an deinen bevorzugten Ort. Im Unterordner bin/jsw/${architektur} liegen dann die start- und stop-Dateien.
Bei Windows Bat und bei Linux halt sh.
Wobei ich bei Nexus einfach hingegangen bin und Tomcat runtergeladen hab. Das war für mich dann doch einfacher als immer diese Skripte.
 

Neue Themen


Oben