Java Apache Maven / Modulares Projekt

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.397
Hallo Leute,

ich hab mal kurz eine Frage, und zwar möchte ich gerne eine Anwendung die ich geschrieben habe und dabei bin weiter zu entwickeln und in mehrere Module zu unterteilen.
Eigentlich habe ich im Urprojekt eine Unterteilung erstellt durch verschiedene Unterverzeichnisse, das finde ich aber unschön.
In Visual Studio kann ich ja wunderbar eine Hauptprojektmappe haben unter der ich so viele Projekte anlegen kann wie ich möchte und wenn ich die Mappe kompiliere sind alle Unterprojekte direkt kompiliert und durch eine einzige Exe zu einer Anwendung verschmolzen und lauffähig.

Im Prinzip hätte ich das auch gerne für ein Java Projekt von mir.

Die Frage ist nun, wie kann ich mittels Maven das Ganze abbilden. Ich was das ich mit Maven ein Hauptprojekt haben kann das auch Modulen besteht und ich weiß auch wie ich alle Module die von einander abhängig sein können kompilieren lassen kann gleichzeitig, allerdings fehlt mir das zusammen schmelzen zu einer gesamten Anwendung.

Ist das überhaupt möglich oder stelle ich mir das völlig falsch vor?

Hier mal meine Vorstellung:

Anwendung -> soll eine lauffähige Jar sein mit allen Dependencies
| | |
Modul A Modul B Modul C

Module können unter einander abhägig sein

Ich finde Maven ziemlich kompliziert und steig das nicht wirklich durch und gerade die Dokumentation finde ich ja sehr unverständlich oder ich bin einfach schlicht zu dumm es zu verstehen.

Grüße DJ
 
Danke für die Antwort :) ich habe auch eine Top level pom ^^ allerdings muss dort ja ein paar Einträge getätigt werden und da weiß ich absolut nicht was da rein soll.

Es wird auch alles kompiliert, ich nutze als IDE Netbeans, wie gesagt mir fehlt denke ich das deploy, es handelt sich aber um eine JavaFX Desktop Anwendung und keine Webapplication.
 
Maven shade plugin sollte auch in der Parent POM funktionieren.

Ist Maven zwingend? Es gibt Alternativen, die allerdings auch erheblichen Lernaufwand verlangen. Ich arbeite mich gerade in Bazel ein. Damit dreht man Kreise um Maven. Ist allerdings noch nicht überall ausgereift (aktuell ist 0.4.2).
 
Das maven shade plugin könnte mir denke ich schon weiter helfen :) danke!

Ich werde mir aber Bazel mal anschauen und mich ggf. dort ein arbeiten bzw. es versuchen. Nimmt ja auch alles Zeit in Anspruch, aber so ist das nun mal.
 
Kommt halt darauf an, was Dir wichtig. Maven ist einfach aufzusetzen und funktioniert oft recht gut, ist dafür ziemlich langsam, gerade bei großen Projekten.

Bazel ist der Open Source-Fork des Google-eigenen Buildsystems. Da kann man sich vielleicht ausmalen, welche Anforderungen zu erfüllen sind ("Scalable: Bazel can handle large builds; at Google, it is common for a server binary to have 100k source files, and builds where no files were changed take about ~200ms."). Die erste stabile Version wird für Ende des Jahres erwartet. Damit sollte dann auch Windows voll unterstützt werden.
 
Darf ich Fragen warum du kein Gradle benutzt?
Wenn ich mich richtig erinnere war Gradle von der Schreibarbeit her deutlich kuerzer und konnte mehr(?).
 
Ja darfst du, ich habe mich noch nie mit Gradle auseinander gesetzt, geschweige denn mal näher betrachtet.

Danke für das Stichwort!
 
Ich habe mir die mal kurz angeschaut und war mit Gradle zufriedener. Was ich so gesehen habe ist Maven nicht mein Fall, da ich keine Lust habe solche XML Sachen zu Handhaben. Gradle ist da einfach einfacher.

Tutorialspoint ist was das angeht schnell durch und sollte auch alles haben was du wissen moechtest (aktuell, weiss nicht in wiefern du dich da einarbeiten moechtest).
 
Zurück
Oben