Maven mit Git

MK115

Mitglied
Hallo Leute,

Ich hatte mir überlegt einen Git Server aufzusetzen um meine Projekte zu verwalten und auch von mehreren Orten erreichbar zu machen. Maven sollte eben als Build Tool fungieren.
Ich habe mit beiden noch nicht gearbeitet und wollte mich daher vorher informieren.

Jetzt die Frage wie kompatibel sind Git und Maven untereinander?
Und ist es möglich Beides in Eclipse als Plugin zu integrieren?

Edit: Gibt es eventuell noch Alternativen?

Grüße MK115
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
Also das sind ja schon 2 verschiedene Dinge. Git dient als Versionierungssystem deiner Sourcen und Maven baut dir aus den Sourcen die Anwendung/Paket. Ob die Sourcen in Git, SVN oder lokal liegen ist Maven egal. Genauso wie es Git egal ist ob du mit Maven oder Ant baust.

Was im Git mit abgelegt wird ist die pom.xml und damit kann dann jeder, der dein Projekt auscheckt und Maven installiert hat auch sofort mit dem Build gemäß pom.xml starten.

In Eclipse können beide Plugins genutzt werden.
 
Zuletzt bearbeitet:

kama

Top Contributor
Hi,

warum nicht auf https://github.com/ gehen oder wenn man es etwas mehr privatsphäre möchte Free source code hosting for Git and Mercurial by Bitbucket ?

automatisch bauen per https://buildhive.cloudbees.com/ bei Projekten die auf Github sind..recht einfach (ein paar klicks)...

oder mit Travis https://travis-ci.org/ geht auch mit Github...
oder https://www.codeship.io/ ?...

Bauen mit Maven, Ant, Gradle ?

Apropos ..BuildHive ist leider auf Maven 3.0.5 begrenzt...Bei CodeShip gibt es bereits Maven 3.1.1 / Gradle 1.1.0
Gruß
Karl Heinz Marbaise
 
Zuletzt bearbeitet:

einbyte

Mitglied
Ich hatte mir überlegt einen Git Server aufzusetzen um meine Projekte zu verwalten und auch von mehreren Orten erreichbar zu machen.

Für Source Code Verwaltung (Versionskontrolle) ist Git einfach super!
Ob man da nun eigene Server aufsetzt... Ich verwende privat Github, Bitbucket und eigene, finde so Github und Bitbucket praktisch, weil es keine Arbeit macht und viele Features hat; bei eigenen hat man immer Arbeit und sei es das updaten der Server. Git kann sehr viel als "Server" verwenden, von IMAP bis hin zu USB Sticks *und man kann das beliebig mischen*. Das ist einfach nur toll.

Maven sollte eben als Build Tool fungieren.
Ich habe mit beiden noch nicht gearbeitet und wollte mich daher vorher informieren.

Jetzt die Frage wie kompatibel sind Git und Maven untereinander?
Und ist es möglich Beides in Eclipse als Plugin zu integrieren?

Maven macht ziemlich genaue Annahmen / Voraussetzungen an die Umgebung; wenn diese erfüllt sind, wie es bei vielen Open Source Projekten wohl der Fall ist, mag es sehr leistungsfähig sein. Sind sie es nicht, wird es schnell anstrengend. Ich werde in Zukunft für closed source wohl wieder erstmal eine Alternative zu Ant suchen :)

Kompatibel sind beide in der Art, dass Maven Quellen braucht, die man mit Git prima verwalten kann, aber etwa in der Form, wie meintewegen ein Editor und Maven kompatibel sind. Als Binärrepository kann meines Wissens nach kein Git Repository benutzt werden, nur ein Maven-Repository. Möchte man Binärpakete verteilen, braucht man also noch etwas.

Eclipse unterstützt ganz sicher beides, weil es beides große "Standard-Techniken" sind.

~/1b
 

kama

Top Contributor
Hallo,

Jetzt die Frage wie kompatibel sind Git und Maven untereinander?
Viele Projekte sowohl Open Sources als auch closed source benutzen diese Kombination...Releases erstellen etc. wird unterstützt...von Maven...dann noch in Kombination mit einem CI System (Jenkins / Hudson etc.).

Und ist es möglich Beides in Eclipse als Plugin zu integrieren?
Git ist seit Eclipse 4.X default...Integration in IntelliJ / Netbeans auch vorhanden...

Maven Integration ist in Eclipse auch vorhanden...

Edit: Gibt es eventuell noch Alternativen?
Du kannst Dir gradle anschauen...

Gruß
Karl Heinz Marbaise
 

kama

Top Contributor
hallo,

Maven macht ziemlich genaue Annahmen / Voraussetzungen an die Umgebung; wenn diese erfüllt sind, wie es bei vielen Open Source Projekten wohl der Fall ist, mag es sehr leistungsfähig sein.
Welche Vorausetzungen und Annahmen ? Klar ich muss ein JDK installiert haben (1.5+)..Eine Voraussetzung ? Was noch?

Kompatibel sind beide in der Art, dass Maven Quellen braucht,
Klar genau wie Ant oder jedes andere Build Tool, damit ich den Quellcode compilieren und packetieren kann....

..die man mit Git prima verwalten kann, aber etwa in der Form, wie meintewegen ein Editor und Maven kompatibel sind.
Kann man mit jeder Art von Versionskontrollsystem (CVS, Subversion, Mercurial, Bazaar, ... etc.).

Als Binärrepository kann meines Wissens nach kein Git Repository benutzt werden, nur ein Maven-Repository. Möchte man Binärpakete verteilen, braucht man also noch etwas.
Das macht auch keinen sinn Binärartefakte in ein Git Repository abzulegen oder allgemein in ein Versionskontrollsystem...

Im Unternehmen nutzt man dann einen Repository Manager (Archiva, Artifactory, Nexus)....für OpenSource kann man Maven Central Nutzen (hier steht wie es geht). Oder man kann auch so Sachen wie Bintray nutzen..

Gruß
Karl Heinz Marbaise
 

einbyte

Mitglied
Welche Vorausetzungen und Annahmen?

Beispielsweise dass man ein Internet hat, dass man keine
Reproduzierbarkeit braucht (was beides oft stimmt, aber eben nicht
immer), das man bestimmte Ablagestrukturen hat. Überhaupt wird
definiert, wie ein Repository aussieht, dass es eins gibt und
dass es "global" ist.

Selbst Begriffe wie "Release" werden verwendet (unterstützt),
wobei diese natürlich von Umfeld und Projekt abhängen (und
formale Sachen sein können bzw. eigentlich sogar sind).

Klar genau wie Ant oder jedes andere Build Tool, damit ich den Quellcode compilieren und packetieren kann....

Zum "nur Kompilieren" ist Maven nicht unbedingt geeignet, glaube
ich. Es macht viel mehr. Was man in OpenSource Projekten oder PoC
natürlich gerne nutzt. Die Compiler-Plugins sind aber nicht
unbedingt überzeugend. Irgendwie funktioniert die Codegenerierung
mit dem neuen nicht in allen Fällen und die Fehlermeldungen bei
den alten nicht (werden abgeschnitten). Ist einem natürlich egal,
wenn man eh nur über IDE baut, weil man da die Meldungen ja
sieht.
(ich will nicht weiter werten, was Maven macht, sondern es nur
mal nennen).

Kann man mit jeder Art von Versionskontrollsystem (CVS, Subversion, Mercurial, Bazaar, ... etc.).

Die aufgezählten SCMs basieren alle auf lokalen Dateien. Es gibt
aber auch andere Arten von Versionskontrollsystemen. Da darf man
beispielsweise vielleicht Sourcefiles nicht schreiben, was
bedeutet, man kann eincheckte Indicies nicht updaten. Je nach
Konfiguration kann das mit Maven ein Problem sein, weil man das
lokale Repository beispielsweise nicht einchecken kann.
(was nicht heißt, dass man es einchecken soll; es geht eben nur
nicht mehr, wenn man es tut, bitte keine Diskussion, dass das
doch toll sei, weil man seinen Fehler wenigstens merkt, es ist
und bleibt ein ungewollter Effekt).

Das macht auch keinen sinn Binärartefakte in ein Git Repository
abzulegen oder allgemein in ein Versionskontrollsystem...

Für GIT stimmt das, daher nennt sich GIT selbst auch gerne
"Content Tracker". Das ist toll für Source Code, aber nicht so
gut für binäre Artifakte.

Maven verwaltet Binärartefakte in einem sogenannten Repository
und ein Repository ist ein Begriff aus dem Configuration
Management (Component repository). Ein Unterschied zu einem
Filesystem ist die Versionierung. Kurz: Ein Repository ist
ziemlich genau ein Versionskontrollsystem für Binärartefakte.

Das ist übrigens auch genau das, was Maven macht: hol mir genau
diese Version von diesem und jenem Artifakt. Versionskontrolle.
Natürlich für ganz andere Zwecke optimiert, als GIT. Daher nimmt
man oft einfach beides :)

Im Unternehmen nutzt man dann einen Repository Manager (Archiva,
Artifactory, Nexus)....für OpenSource kann man Maven Central
Nutzen (hier steht wie es
geht
). Oder man kann auch so Sachen wie
Bintray nutzen..

Ja, es gibt Unternehmen, die können sich das vorgeben lassen. Und
es gibt Unternehmen bzw. Projekte, da geben die Gutachter und
viele weitere Anforderungen sowas vor. Beispielsweise kann man
durchauch WORM als Repository fordern (was so ohne weiteres
erstmal keine Index-Files erlaubt).

Exkurs:
Man darf nicht vergessen, dass die OpenSource Welt bestimmte
Probleme nicht so direkt hat.

Man sieht aber auch, dass Reproduzierbarkeit an Bedeutung
gewinnt, so ist TOR wohl inzwischen reproduzierbar und man
arbeitet an einer reproduzierbaren Debian (das finde ich total
Klasse!), da gabs einen schönen talk beim 31c3.

Die Probleme, die man da hat, sind schon sehr umfangreich. Eine
Ursache dafür sind "versteckte Annahmen", wie wir sie hier haben.
(Daher habe ich den Post nochmal rausgekramt und ein Follow-Up
geschrieben, ich hoffe, es gefällt euch, wäre sonst Schade um die
Arbeit).

~/1b
 

Neue Themen


Oben