| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
dev:maven [2026/05/11 19:31] tomas [Příklady] |
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 -v ... 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 help:active-profiles ... informace o aktivních profilech\\ | mvn help:active-profiles ... informace o aktivních profilech\\ |
| mvn help:active-profiles -P dev ... to samé, ale zaktivuje profil dev\\ | mvn help:active-profiles -P-dev,prod ... to samé, jen se deaktivuje profil dev a aktivuje profil prod\\ |
| mvn help:active-profiles -P-dev ... to samé, jen se deaktivuje profil dev\\ | |
| mvn help:all-profiles ... seznam všech profilů\\ | mvn help:all-profiles ... seznam všech profilů\\ |
| mvn dependency:tree -X ... seznam závislostí\\ | mvn dependency:tree -X ... seznam závislostí\\ |
| mvn -help ... help\\ | 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 ... 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: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 | mvn deploy:deploy-file -DgroupId=cz.lipensky.spotless |