Maven

O2016

Bekanntes Mitglied
Letztens hat mir ein bekanntes Mitglied aus diesem Forum(Name fällt mir nicht ein) hier erklärt wie ich eine .jar Datei mit einer externen Library bspw. gson erstelle, damit ich anschließend ein fertiges Programm habe.
Seitdem habe ich Programme über die Konsole .jar erstellt.
ich wurde jetzt von verschiedenen Leuten angesprochen wieso ich das über die Konsole mache.
Nun habe ich gehört man macht dies mit Maven. (oder gibt es eine bessere Alternative?)

Jetzt hab ich verschiedene Sachen im Internet gefunden,
Bsp: erstelle deine Jar Datei mit Eclipse und Maven bzw. erstelle sie nur mit Maven ohne Eclipse.

Habt ihr vll ein schönes Tutorial oder sagt ihr einfach :
Installier dir Maven, starte es und teste es einfach
 

mihe7

Top Contributor
Maven ist ein Build-Tool, das dem convention over configuration Ansatz folgt (im Gegensatz z. B. zu ant). In Projekten kommen immer wieder die gleichen Schritte vor, und mit Maven wird der Aufwand hierfür stark vereinfacht.

Im Prinzip funktioniert das so, dass es ein "project object model" gibt, das die Eckpunkte des Projekts beschreibt. Hinterlegt wird dieses in Form einer XML-Datei (pom.xml). Hört sich alles sehr kompliziert an, ist aber tatsächlich ganz einfach.

Du kannst jetzt z. B. per Eclipse ein Maven-Projekt anlegen, das kannst Du unter jeder IDE oder auch einfach von der Befehlszeile aus builden.

Du kannst auch über die Befehlszeile ein Maven-Projekt anlegen (mvn archetype:generate.

Schau es Dir einfach mal an. Bei Fragen einfach fragen.
 

mihe7

Top Contributor
Hier mal eine beispielhafte pom.xml für ein Projekt "testprojekt", die ich meist als Vorlage verwende, wenn ich hier fürs Forum was mache:
XML:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.javaforum.mihe7</groupId>
    <artifactId>testprojekt</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>

Wenn Du Dir einen leeren Ordner anlegst, die Datei reinkopierst und dann unter src/main/java (die Ordner musst Du Dir natürlich vorher erstellen) Java-Dateien ablegst, kannst Du mit mvn compile aus dem Projektverzeichnis heraus übersetzen, mit mvn package übersetzen und ein Jar erzeugen bzw. mit mvn install übersetzen und das Jar in Dein lokales Repository installieren.

Besonders schön an Maven finde ich die Verwaltung der Abhängigkeiten: Du siehst eine dependency auf junit. Maven lädt sich die notwendigen Jars (und POMs etc.) automatisch aus dem Central Repository.

Ach, so. Ausführen kannst Du Dein Java-Projekt mittels mvn exec:java -Dexec.mainClass=paket.zur.MainClass
 

O2016

Bekanntes Mitglied
ok, aber so ganz klar ist mir das nicht. AUch nicht wirklich was der da herunterlädt oder hochlädt. Ich hab jetzt zwei verschiedene Ordner
testprojekt -> src -> main-java (target->testprojekt-1.0-snapshot, pom.xml, test.java)
sowie
.m2 -> rep -> org -> javaforum -> XX -> testprojekt -> 1.0-Snapshot (_remote.repositories, maven-metadata-local.xml, testprojekt -1.0-snapshit.jar, testprjekt-1.0-snapshot.pom)
 

mihe7

Top Contributor
Ich hab jetzt zwei verschiedene Ordner
Ja, im .m2-Ordner befinden sich lokale Einstellungen sowie das lokale Maven-Repository.

Maven löst die Abhängigkeiten immer gegen das lokale Repository auf. Findet es z. B. eine Lib dort nicht, wird in anderen Repositories (in der Regel handelt es sich um das zentrale Maven Repository, s. https://mvnrepository.com/repos/central) nachgesehen und von dort heruntergeladen (ins lokale Repository).
 

O2016

Bekanntes Mitglied
Besonders was ich nicht verstehe, ich habe jetzt eine myapp.jar datei, die lediglich in der main einen SystemOut von "Hello World" hat. Kann ich die nichteinfach mit Doppelklick starten und dann sollte er auf einem Konsolenfenster Hello World ausgeben? oder verstehe ich da was falsch
 

mrBrown

Super-Moderator
Mitarbeiter
Besonders was ich nicht verstehe, ich habe jetzt eine myapp.jar datei, die lediglich in der main einen SystemOut von "Hello World" hat. Kann ich die nichteinfach mit Doppelklick starten und dann sollte er auf einem Konsolenfenster Hello World ausgeben? oder verstehe ich da was falsch
In der Standardkonfiguration klappt das nicht, man muss den Build so konfigurieren, dass eine passende Jar gebaut wird. Mehrere Möglichkeiten dafür findest du zB hier: https://www.baeldung.com/executable-jar-with-maven
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Merkwürdiges Verhalten der Maven IDE Java Basics - Anfänger-Themen 3
G Maven Swing: Wie verwende ich WindowListener ? Java Basics - Anfänger-Themen 2
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
M mit Maven eine ausführbare Jar bauen Java Basics - Anfänger-Themen 7
W Datenbankverbindung mit Maven konfigurieren Java Basics - Anfänger-Themen 11
D maven dependencies re-importieren in intellij Java Basics - Anfänger-Themen 5
C External Jar einbinden bei Maven Java Basics - Anfänger-Themen 9
T JavaFX2/maven Java Basics - Anfänger-Themen 7
C Einbinden von Komponenten mit Maven Java Basics - Anfänger-Themen 3
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
S Maven und externe Library Java Basics - Anfänger-Themen 2
P Maven-Dependencies (package org.apache.http.nio does not exist) Java Basics - Anfänger-Themen 6
D MAVEN Java Basics - Anfänger-Themen 3
B Arquillian installieren - Maven, WildFly, MYSQL Java Basics - Anfänger-Themen 1
T gradle, maven, ant - was ist das? Java Basics - Anfänger-Themen 2
P Maven und eigene Jars Java Basics - Anfänger-Themen 4
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
elischa Eclipse Plugin Projekt, Maven Projekt und dependencies Java Basics - Anfänger-Themen 5
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
M Warum ist Maven als Technologie eigentlich so sicher? Java Basics - Anfänger-Themen 0
M Frage zu Maven Plugin für Eclipse IDE Java Basics - Anfänger-Themen 1
M Frage zu Maven Lifecycles Java Basics - Anfänger-Themen 2
M Maven Dependency im Java Projekt Java Basics - Anfänger-Themen 1
K Maven Dependency unklar Java Basics - Anfänger-Themen 5
M Bestehendes Projekt auf Maven umstellen? Java Basics - Anfänger-Themen 5
G Maven Dependency für Oracle JDBC-Driver korrekt festlegen Java Basics - Anfänger-Themen 4
G Erstellen eines Maven Projektes mit Eclipse Java Basics - Anfänger-Themen 9
F frage zu maven Java Basics - Anfänger-Themen 2
G Unterschied zwischen Ant und Maven Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben