# Dependency management



## Jorsens (20. Apr 2018)

Hi Leute,
ich würde gerne wissen was ein Dependency management ist, wie es funktioniert und was es für vor und Nachteile es gibt.

danke jetzt schonmal für die hilfe
Jorsens


----------



## Robat (20. Apr 2018)

Alle 3 Fragen werden wunderbar bei Google erklärt - einfach mal nach Dependency Management googeln.
Was genau fehlt dir noch zum Verständnis? 

Hier mal einführend zu Maven und Gradle.


----------



## Jorsens (20. Apr 2018)

Ich hab mir dort schon viele Artikel durchgelesen aber ich habe nich nicht so richtig verstanden was genau der Vorteil davon ist. Da ich das soweit verstanden habe das man damit seine Daten sortieren, und verwalten lassen kann. Allerdings so habe ich das verstanden gibt es nach einer Gewissen Größe an Beziehungen das Problem das die Programme wenn man sie in sie in seinen code mit einfügt einen Logische Fehler erzeugen.


----------



## Robat (20. Apr 2018)

Um mal einige Vorteile zu nennen:
- Wenn du in einer Gruppe programmierst müssen sich die anderen nicht darum kümmern an die eingebundenen Libs zu kommen. 
- Du musst dich nicht darum kümmern die Dependencies der eingebundenen Libs zu vervollständigen
- Du musst keine 3 Stunden lang das Internet nach .jar Dateien durchforsten, diese runterladen, in ein Ordner schieben und sie deinem Projekt hinzufügen 
- Wenn es um Lizenzen geht kann dir eine Auflistung gegeben werden (der Punkt ist für einen einzelnen Hobby-Programmierer sicherlich eher uninteressant)
- ...

Prinzipiell muss jeder für sich selbst entscheiden, ob er die Gründe für Vorteile hält. Sicherlich kann man das alles auch per Hand machen aber wenn man sich einmal ein Gerüst zusammengebaut hat brauch man dieses nur noch in jedem Projekt übernehmen und der ganze Dependency-Quatsch läuft wie geschmiert. 



Jorsens hat gesagt.:


> nach einer Gewissen Größe an Beziehungen das Problem das die Programme wenn man sie in sie in seinen code mit einfügt einen Logische Fehler erzeugen.


Persönlich bin ich noch nicht an diese Grenzen gestoßen.


----------



## Jorsens (20. Apr 2018)

Danke für deine Hilfe ich glaube damit kann ich schon was anfangen


----------



## mrBrown (20. Apr 2018)

Jorsens hat gesagt.:


> Allerdings so habe ich das verstanden gibt es nach einer Gewissen Größe an Beziehungen das Problem das die Programme wenn man sie in sie in seinen code mit einfügt einen Logische Fehler erzeugen.


Was meinst du damit?

Wenn du damit kollidierende transitive Abhängigkeiten meinst (Dein Projekt braucht A und B, A baucht C in Version 1 und B braucht C in Version 2): 
Ja, kann passieren. Ohne Dependency-Management passiert es dann aber auch.


----------



## Jorsens (27. Apr 2018)

Entschuldige bitte das ich darauf so späht antworte. Leider habe ich das mit den A B C Daten nicht verstanden kannst du das genauer erläutern?

Ich meinte das eigentlich genau so wie ich es oben geschrieben habe. Diese information habe ich auf irgendwelchen Seiten nach gelesen deswegen kann es gut sein das die information falsch ist.


----------



## mrBrown (28. Apr 2018)

Jorsens hat gesagt.:


> Entschuldige bitte das ich darauf so späht antworte. Leider habe ich das mit den A B C Daten nicht verstanden kannst du das genauer erläutern?


Es gibt die Dependencies A, B und C.
Dein Programm braucht Dabei A und B.
A braucht Dependency C in der Version 1, deinem Programm muss, damit A benutzt werden kann, auch C1 beiliegen.
B braucht aber Dependency C in der Version 2, damit dein Programm B nutzen kann, muss also C2 beiliegen.

Version 1 und Version 2 von C gleichzeitig klappt aber nicht, also gibts Probleme.




Jorsens hat gesagt.:


> Ich meinte das eigentlich genau so wie ich es oben geschrieben habe. Diese information habe ich auf irgendwelchen Seiten nach gelesen deswegen kann es gut sein das die information falsch ist.


Hm, zumindest ist die Aussage deutlich zu knapp, um sagen zu können, ob das gänzlich falsch oder nur missverständlich oder richtig ist...


----------

