|
Next revision
|
Previous revision
|
dev:maven [2025/10/30 13:48] tomas created |
dev:maven [2026/05/13 18:04] (current) tomas [souborová struktura] |
| Maven je buildovací nástroj, který pracuje s [[https://maven.apache.org/guides/introduction/introduction-to-the-pom.html|pom.xml]] souborem, který definuje informace o produktu - název produktu, závislosti atd. | Maven je buildovací nástroj, který pracuje s [[https://maven.apache.org/guides/introduction/introduction-to-the-pom.html|pom.xml]] souborem, který definuje informace o produktu - název produktu, závislosti atd. |
| |
| | |
| | ==== Odkazy ==== |
| [[https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html]] ... maven za 5 minut - pěkný úvod\\ | [[https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html]] ... maven za 5 minut - pěkný úvod\\ |
| | [[https://maven.apache.org/plugins/index.html|pluginy]]\\ |
| |
| === Pluginy === | ==== souborová struktura ==== |
| https://maven.apache.org/plugins/index.html | ~/.m2/settings.xml ... společná nastavení pro všechny projekty, typicky hesla, cesty k repozitářům, [[https://maven.apache.org/guides/introduction/introduction-to-profiles.html|profily]] atd\\ |
| | ~/.m2/[[https://maven.apache.org/guides/mini/guide-encryption.html|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 ==== | ==== Syntaxe ==== |
| mvn --version ... verze Mavenu\\ | mvn -v ... verze Mavenu\\ |
| mvn [[https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html|mezerou_oddělené_fáze]] [[https://maven.apache.org/ref/3.9.11/maven-embedder/cli.html|přepínače]] | mvn [[https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html|mezerou_oddělené_fáze/pluginy]] [[https://maven.apache.org/ref/3.9.11/maven-embedder/cli.html|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 ==== | ==== Příklady ==== |
| mvn deploy:deploy-file -DgroupId=cz.lipensky.spotless \ | mvn help:active-profiles ... informace o aktivních profilech\\ |
| -DartifactId=spotless-eclipseformat\ | mvn help:active-profiles -P-dev,prod ... to samé, jen se deaktivuje profil dev a aktivuje profil prod\\ |
| -Dversion=1.0.0 \ | mvn help:all-profiles ... seznam všech profilů\\ |
| -Dpackaging=xml \ | mvn dependency:tree -X ... seznam závislostí\\ |
| -Dfile=spotless.eclipseformat.xml \ | mvn -help ... help\\ |
| -DgeneratePom=true \ | mvn help:evaluate -Dexpression=project.version -q -DforceStdout ... ukáže aktuální verzi projektu z pom.xml\\ |
| -DrepositoryId=maven-java-releases \ | |
| -Durl=https://nexus.server/repository/maven-java-releases/ ... release do repozitáře z paramentrové řádky\\ | 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é\\ |