BuildManagement:Maven: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
Zeile 30: | Zeile 30: | ||
</project> | </project> | ||
</source> | </source> | ||
Diese erstellt man (inkl. der Verzeichnisse) mit dem Befehl: | |||
<source lang="bash"> | <source lang="bash"> | ||
mvn archetype:generate -DgroupId= | mvn archetype:generate -DgroupId=de.kluge.project-group -DartifactId=project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false | ||
</source> | </source> | ||
'''Alle POMs leiten von einem Super POM ab,''' welches man mit ''mvn help:effective-pom'' anschauen kann. | |||
== Bauen == | == Bauen == | ||
Es gibt die '''build phase''' und '''goals'''. Die ''build phase'' besteht aus den Schritten: | |||
* | |||
* | |||
* | |||
Meistens benötigt man clean und install, was zum Befehl ''mvn clean install'' führt. | Ein gemixted Kommando könnte so aussehen: | ||
<source lang="bash" encl="div"> | |||
mvn clean dependency:copy-dependencies package | |||
</source> | |||
Dann wird zuerst die '''build phase''' ''clean'' ausgeführt, gefolgt vom '''goal''' ''dependency:copy-dependencies''. Und zum Schluss wird die '''build phase''' ''package'' ausgeführt. | |||
(Meistens benötigt man clean und install, was zum Befehl ''mvn clean install'' führt.) | |||
== Ausführen == | == Ausführen == |
Version vom 10. November 2016, 20:08 Uhr
Installation
- Java JDK muss installiert sein (echo %JAVA_HOME%, java -version)
- Download Maven
- Unzip Maven
- Das bin-Verzeichnis in den Pfad aufnehmen (mvn -v)
Einstellungen lassen sich im Unterverzeichnis conf in der Datei settings.xml ändern
Struktur
Konzept
Maven nutzt das Convention over Configuration-Konzept. Bei einem Mavenprojekt liegen die Quellen in den Verzeichnisstrukturen src/main/java, src/main/resources und src/test/java vor. Nach dem Ausführen liegen alle Artefakte im Verzeichnis target.
Steuerung
Maven wird durch eine Konfigurationsdatei pom.xml (Project Object Model) gesteuert. Die POMs enthalten goals und plugins. Sie starten mit dem üblichen XML-Header und dann für das Projekt spezifischen Parametern groupId, artifactId, version.
<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>de.kluge.project-group</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
...
</project>
Diese erstellt man (inkl. der Verzeichnisse) mit dem Befehl:
mvn archetype:generate -DgroupId=de.kluge.project-group -DartifactId=project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Alle POMs leiten von einem Super POM ab, welches man mit mvn help:effective-pom anschauen kann.
Bauen
Es gibt die build phase und goals. Die build phase besteht aus den Schritten:
Ein gemixted Kommando könnte so aussehen:
mvn clean dependency:copy-dependencies package
Dann wird zuerst die build phase clean ausgeführt, gefolgt vom goal dependency:copy-dependencies. Und zum Schluss wird die build phase package ausgeführt. (Meistens benötigt man clean und install, was zum Befehl mvn clean install führt.)
Ausführen
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App