# Handhabung Maven Repository



## freez (13. Jul 2012)

Da ich neu in Bezug auf Maven bin habe ich eine Best Practice Frage.

Wenn ich ein Eclipse Projekt habe, wo ich meine externen Libs per Maven einbinde, werden die Libs ja im lokalen Repository von Maven abgelegt und im Build Path nur dorthin verwiesen.

Wenn ich jetzt mein Projekt per Git / SVN oä. jemand anderes zur Verfügung stellen möchte, aber er hat kein Internetzugang, dann bekommt er ja die Libs nicht mitgeliefert, sondern nur meine Sourcen. Wie stellt man demjenigen am besten die Libs zur Verfügung?


----------



## hexx (13. Jul 2012)

Maven komplett ohne (auch nur zeitweisen) Internetzugang zu benutzen, macht wenig Sinn. Es geht ja nicht nur um die Projektabhängigkeiten, es werden ja zur Laufzeit die benötigten Plugins heruntergeladen. Irgendwann braucht man also Zugriff auf ein Remote-Repository.

Wenn man alle benötigten Abhängigkeiten (sowohl vom Projekt, als auch von Maven) erst mal im lokalen Repository auf der Platte hat, kann man Maven beim Aufruf mit 
	
	
	
	





```
--offline
```
 dazu zwingen, nicht nach Aktualisierungen zu suchen.

Wenn es nur ums Internet geht:

Viele Firmen haben in ihrem Netzwerk einen eigenen Repository-Manager (Nexus, Artifactory), der das offizielle Central-Repository spiegelt und intern zu Verfügung stellt.

Ansonsten bleibt nur noch, ein schon befülltes, lokales Repository als Archiv zu Verfügung zu stellen... aber das schreibe ich nur als theoretische Möglichkeit, und nicht weil ich es wirklich empfehlen würde.


----------



## kama (13. Jul 2012)

Hallo,

zuerst einmal etwas Grundsätzliches. Wer mit Maven arbeitet und in seinem lokalen Netzwerk keinen Repository Manager installiert hat macht etwas falsch...auch für ein-man-projekte...

Ein Repo-Manager gibt die Möglichkeit eigene Artefakte dort abzulegen...so man denn nicht in Maven Central ablegen möchte (was nur wenige Leute möchten).

Zum Thema: Firmen kann ich nur sagen, wenn die keinen Repo-Manager haben läuft da was ganz grob schief...

Weitere Argumente etc. kann man auch hier nochmal nachlesen: Sonatype Blog  Wait… you don’t have a repository manager?

@freez:
Meine Frage wäre wie die Sourcen den tansferiert werden ? Bei SVN brauche ich einen Zentralen Server (oder schiebt ihr dump files hin und her?). Bei Git geht das ein wenig einfacher oder doch per GitHub ? 


Wenn man einen solchen Repo-Manager einsetzt haben die Repo-Manager eine Backup-Funktion bzw. die Möglichkeit Repositories in Form von Archiven zu exportieren...das kann man dann auch dazu verwenden dass wieder bei jemand anders wieder einzuspielen...Das kann aber nur eine Not-Lösung sein....


Gruß
Karl-Heinz Marbaise


----------



## freez (13. Jul 2012)

Danke für die Informationen. Ich sehe, dass ich noch viel lesen muss über Maven.

Meine Frage war weniger auf eine teambasierte Zusammenarbeit gestellt, sondern ich arbeite an 2 Rechnern an 2 Orten, wo nur der eine einen Internetzugang hat und ich die Daten per GitRepository auf einem USB Stick übertrage (Push/Pull zum Stick). Ich denke, dass ich an der Stelle wohl zu dem Workaround greife und das lokale Maven Repository clone, wenn ich es brauche (vielleicht kann ich das auch mit Git machen). Es geht eh nur um ein Hobbyprojekt.


----------



## maki (13. Jul 2012)

Git wwürde ich dafür nicht nehmen, Maven Repos können groß werden (paar hundert MB bis in den GiB Bereich ).

Einfach das Repo kopieren und mit [c]-o[/o] arbeiten.


----------



## kama (13. Jul 2012)

Hi,

wie wäre es das Maven Repo direkt auf den USB Stick zu legen...damit spart man sich die rum kopiererei....könnte aber ein wenig langsam werden...

Das mit Git hätte aber den Vorteil er würde immer nur die Änderungen jeweils kopieren...Das könnte man aber auch mit rsync erreichen was warscheinlich auch noch schneller ist...


Gruß
Karl-Heinz Marbaise


----------

