Maven

Maven je buildovací nástroj, který pracuje s pom.xml souborem, který definuje informace o produktu - název produktu, závislosti atd.

Odkazy

souborová struktura

~/.m2/settings.xml … společná nastavení pro všechny projekty, typicky hesla, cesty k repozitářům, profily atd
~/.m2/settings-security.xml … heslo na šifrování hesel v settings.xml
~/.m2/repository … cache stažených knihoven
pom.xml … project object model - soubor v projektu, který definuje název balíčku, verzi, závislosti atd.

Syntaxe

mvn -v … verze Mavenu
mvn mezerou_oddělené_fáze/pluginy přepínače

Přepínače

-DskipTests … nebude dělat testy kódu, -D nastavuje systémové pproměnné Mavenu
-Dmaven.test.skip=true … to samé
-Daether.connector.https.securityMode=insecure … nekontroluje TLS certifikáty pro stahování artefaktů
-T 4 … builduje ve 4 vláknech
-X … debug mód, vypisuje hodně informací o tom, co dělá
-s ~/.m2/settings.jine.xml … použití jiného settings.xml s kredencema

Příklady

mvn help:active-profiles … informace o aktivních profilech
mvn help:active-profiles -P-dev,prod … to samé, jen se deaktivuje profil dev a aktivuje profil prod
mvn help:all-profiles … seznam všech profilů
mvn dependency:tree -X … seznam závislostí
mvn -help … help
mvn help:evaluate -Dexpression=project.version -q -DforceStdout … ukáže aktuální verzi projektu z pom.xml

mvn deploy:deploy-file -Durl=https://maven.corp.com/repo -DrepositoryId=my.server -Dfile=your-artifact-1.0.jar … nahraje soubor do repozitáře
mvn deploy:deploy-file -Durl=https://maven.corp.com/repo -DrepositoryId=my.server -Dfile=your-artifact-1.0.jar -Daether.connector.https.securityMode=insecure … nekontroluje certifikáty
mvn deploy -DskipTests -DaltReleaseDeploymentRepository=“jfrog::default::https://www.jfrog.io/artifactory/release” -DaltSnapshotDeploymentRepository=“jfrog::default::https://www.jfrog.io/artifactory/snapshot” … vyreleasování do jiného repozitáře, než je uvedeno v pom.xml

mvn deploy:deploy-file -DgroupId=cz.lipensky.spotless -DartifactId=spotless-eclipseformat -Dversion=1.0.0 -Dpackaging=xml -Dfile=spotless.eclipseformat.xml -DgeneratePom=true -DrepositoryId=maven-java-releases -Durl=https://nexus.server/repository/maven-java-releases/ … release do repozitáře z paramentrové řádky, -D jsou proměnné