## Maven
* [1.mavenæ¯ä»ä¹ï¼](#1mavenæ¯ä»ä¹)
* [2.使ç¨Maven好å¤](#2使ç¨maven好å¤)
* [3.Mavençåæ åä¾èµ](#3mavençåæ åä¾èµ)
* [4.Mavençâ½£å½å¨æ](#4mavençå½å¨æ)
* [5.ä½ ä»¬é¡¹ç®ä¸ºä»ä¹éç¨ Maven è¿è¡æå»ºï¼](#5ä½ ä»¬é¡¹ç®ä¸ºä»ä¹éç¨-maven-è¿è¡æå»º)
* [6.Maven è§çº¦æ¯ä»ä¹ï¼](#6maven-è§çº¦æ¯ä»ä¹)
* [7.Maven 常ç¨å½ä»¤](#7maven-常ç¨å½ä»¤)
* [8.Maven æåªäºä¼ç¹å缺ç¹](#8maven-æåªäºä¼ç¹å缺ç¹)
* [9.Maven çæ¬è§åï¼](#9maven-çæ¬è§å)
* [10.对äºä¸ä¸ªå¤æ¨¡å项ç®ï¼å¦æç®¡ç项ç®ä¾èµççæ¬ï¼](#10对äºä¸ä¸ªå¤æ¨¡å项ç®å¦æç®¡ç项ç®ä¾èµççæ¬)
* [11.Maven ä¾èµååï¼](#11maven-ä¾èµåå)
* [12.å¦ä½è§£å³ jar å²çªï¼](#12å¦ä½è§£å³-jar-å²çª)
* [13.ä»ä¹æ¯ Maven æä»¶ï¼](#13ä»ä¹æ¯-maven-æä»¶)
* [14.Mavenä¾èµå²çª](#14mavenä¾èµå²çª)
* [15.ä¾èµçè§£ææºå¶](#15ä¾èµçè§£ææºå¶)
#### 1.mavenæ¯ä»ä¹ï¼
Apache Mavenæ¯ä¸ä¸ªè½¯ä»¶é¡¹ç®ç®¡çåç解工å
·ãåºäºé¡¹ç®å¯¹è±¡æ¨¡åï¼POMï¼çæ¦å¿µï¼Mavenå¯ä»¥ä»ä¸ä¸ªä¸å¿ä¿¡æ¯ç®¡ç项ç®çæå»ºï¼æ¥ååææ¡£ã
é¡¹ç®æå»º
å¨eclipse䏿°å»ºä¸ä¸ªWEBå·¥ç¨ã
è¿è¡ç¼ç åç¼åé
ç½®æä»¶
对æºä»£ç è¿è¡ç¼è¯è¿è¡ï¼çæclassæä»¶
ææwarå
ï¼é¨ç½²è³tomcat
#### 2.使ç¨Maven好å¤
Mavenè½æä¾ä¸ç§é¡¹ç®çé
ç½®ï¼é
置好ç项ç®ï¼åªéè¦è¿è¡ä¸æ¡ç®åçå½ä»¤ï¼å°±è½å®æéå¤çï¼ç¹ççæå»ºå¨ä½.
Mavenè½æä¾ä¸ç§é¡¹ç®çä¾èµé
ç½®.å¯ä»¥èªå¨ç导å
¥é¡¹ç®ä¾èµçjar,å¹¶ä¸èªå¨å¯¼å
¥è¿äºjarå
ä¾èµçç¬¬ä¸æ¹çjarå
.
Mavenæä¾äºä¸ç§æ åç项ç®ç®å½ç»æï¼æµè¯å½åè§åç项ç®çæä½³å®è·µæ¹æ¡ï¼ç»ä¸äºä¸å项ç®çå¦ä¹ ææ¬.
mavenç常ç¨å½ä»¤
mvn clean : æ¸
ç
mvn compileï¼ç¼è¯
mvn packageï¼æå
mvn test : æµè¯ï¼â¾å¨è¿â¾ææçæµè¯â½¤ä¾
mvn install : å®è£
ï¼å°é¡¹â½¬æçå
å®è£
å°æ¬å°ä»åºï¼å
¶ä»é¡¹â½¬å°±å¯ä»¥ä¾èµäº
mvn jetty:run : è¿â¾jettyæä»¶
#### 3.Mavençåæ åä¾èµ
mavençåæ ç»æé¨å
groupId: ç»ç»æºæidï¼org.aptech.hdaxï¼ org.springframework
artifactId: ⼦项⽬ç¼å·ï¼springmvc, spring-test, spring-core
version: çæ¬å·ï¼å¯ä»¥â¼ç´è¿ä»£ï¼å¹³æ¶é¡¹â½¬å¼åâ½¤çæ¯å¿«ç
§çæ¬ 0.0.1-SNAPSHOT
Packageï¼ jar war pom
项⽬ä¾èµçæ ¸â¼¼æ¦å¿µï¼
æ¡æ¶æ´åæå®³æjarå
å²çªï¼ä¹åä¸ä½¿â½¤mavenï¼ç»å¸¸åºç°è¿ä¸ªâ½ä»¶ã
ä¾èµèå´ scopeæ ç¾è¿â¾é
ç½®
Compile: é»è®¤å¼ï¼é¡¹â½¬æå
çæ¶åä¼æè¯¥ä¾èµå
æè¿å»
Test : æµè¯ä¾èµï¼åªæ¯å¨è¿â¾æµè¯â½¤ä¾çæ¶åä¼â½¤å°ï¼æå
æ¯ä¸æè¿å»ç
Provided: æä¾ä¾èµï¼ç±»ä¼¼äºtest
ä¼ éä¾èµ
a -> b, b->c ,妿å¨aä¸å¯¼â¼å°bçä¾èµï¼cä¼â¾å¨è¿æ¥
ä¾èµè°è§£
妿ä¸åçå
ä¼ éä¾èµäºâ¼ä¸ªç¸åçjarï¼ä½æ¯çæ¬ä¸â¼è´
ååï¼
æçè·¯å¾
第â¼å£°æä¼å
åå
æé¤ä¾èµ
å½ç±»ä¾èµ: â½
便åæçä¾èµçæ¬å级ãé级
#### 4.Mavençâ½£å½å¨æ
ä¸ä¸ªé¡¹ç®çæå»ºè¿æé常å
æ¬æ¸
çãç¼è¯ãæµè¯ãæå
ãéææµè¯ãéªè¯ãé¨ç½²çãMavenä»ä¸æ½åäºä¸å¥å®åçãææ©å±ççå½å¨æãMavenççå½å¨ææ¯æ½è±¡çï¼å
¶ä¸çå
·ä½ä»»å¡é½äº¤ç±æä»¶æ¥å®æãMavenä¸ºå¤§å¤æ°æå»ºä»»å¡ç¼åå¹¶ç»å®äºé»è®¤çæä»¶ã
Mavenå®ä¹äºä¸å¥çå½å¨æï¼cleanãdefaultãsiteï¼æ¯ä¸ªçå½å¨æé½å
å«äºä¸äºé¶æ®µï¼phaseï¼ãä¸å¥çå½å¨æç¸äºç¬ç«ï¼ä½å个çå½å¨æä¸çé¶æ®µå´æ¯æé¡ºåºçï¼ä¸åé¢ç夹æä¾èµäºåé¢çé¶æ®µãæ§è¡æä¸ªé¶æ®µæ¶ï¼å
¶åé¢çé¶æ®µä¼ä¾é¡ºåºæ§è¡ï¼ä½ä¸ä¼è§¦åå¦å¤ä¸¤å¥çå½å¨æä¸çä»»ä½é¶æ®µã
#### 5.ä½ ä»¬é¡¹ç®ä¸ºä»ä¹éç¨ Maven è¿è¡æå»ºï¼
- é¦å
ï¼Maven æ¯ä¸ä¸ªä¼ç§çé¡¹ç®æå»ºå·¥å
·ã使ç¨mavenï¼å¯ä»¥å¾æ¹ä¾¿ç对项ç®è¿è¡å模åæå»ºï¼è¿æ ·å¨å¼ååæµè¯æå
é¨ç½²æ¶ï¼æç伿é«å¾å¤ã
- å
¶æ¬¡ï¼Maven å¯ä»¥è¿è¡ä¾èµç管çãä½¿ç¨ Maven ï¼å¯ä»¥å°ä¸åç³»ç»çä¾èµè¿è¡ç»ä¸ç®¡çï¼å¹¶ä¸å¯ä»¥è¿è¡ä¾èµä¹é´çä¼ éåç»§æ¿ã
#### 6.Maven è§çº¦æ¯ä»ä¹ï¼
- `/src/main/java/` ï¼Java æºç ã
- `/src/main/resource` ï¼Java é
ç½®æä»¶ï¼èµæºæä»¶ã
- `/src/test/java/` ï¼Java æµè¯ä»£ç ã
- `/src/test/resource` ï¼Java æµè¯é
ç½®æä»¶ï¼èµæºæä»¶ã
- `/target` ï¼æä»¶ç¼è¯è¿ç¨ä¸çæç `.class` æä»¶ãjarãwar ççã
- `pom.xml` ï¼é
ç½®æä»¶
Maven è¦è´è´£é¡¹ç®çèªå¨åæå»ºï¼ä»¥ç¼è¯ä¸ºä¾ï¼Maven è¦æ³èªå¨è¿è¡ç¼è¯ï¼é£ä¹å®å¿
é¡»ç¥é Java çæºæä»¶ä¿åå¨åªéï¼è¿æ ·çº¦å®ä¹åï¼ä¸ç¨æä»¬æå¨æå®ä½ç½®ï¼Maven è½ç¥éä½ç½®ï¼ä»è帮æä»¬å®æèªå¨ç¼è¯ã
éµå¾ª**â约å®>>>é
ç½®>>>ç¼ç â**ãå³è½è¿è¡é
ç½®çä¸è¦å»ç¼ç æå®ï¼è½äºå
约å®è§åçä¸è¦å»è¿è¡é
ç½®ãè¿æ ·æ¢åè½»äºå³å¨åï¼ä¹è½é²æ¢åºéã
#### 7.Maven 常ç¨å½ä»¤
- `mvn archetypeï¼create` ï¼å建 Maven 项ç®ã
- `mvn compile` ï¼ç¼è¯æºä»£ç ã
- `mvn deploy` ï¼åå¸é¡¹ç®ã
- `mvn test-compile` ï¼ç¼è¯æµè¯æºä»£ç ã
- `mvn test` ï¼è¿è¡åºç¨ç¨åºä¸çåå
æµè¯ã
- `mvn site` ï¼çæé¡¹ç®ç¸å
³ä¿¡æ¯çç½ç«ã
- `mvn clean` ï¼æ¸
é¤é¡¹ç®ç®å½ä¸ççæç»æã
- `mvn package` ï¼æ ¹æ®é¡¹ç®çæç jar/war çã
- `mvn install` ï¼å¨æ¬å° Repository ä¸å®è£
jar ã
- `mvn eclipse:eclipse` ï¼çæ Eclipse é¡¹ç®æä»¶ã
- `mvn jetty:run` å¯å¨ Jetty æå¡ã
- `mvn tomcat:run` ï¼å¯å¨ Tomcat æå¡ã
- `mvn clean package -Dmaven.test.skip=true` ï¼æ¸
é¤ä»¥åçå
åéæ°æå
ï¼è·³è¿æµè¯ç±»ã
- ç¨å°æå¤çå½ä»¤
- `mvn eclipse:clean` ï¼æ¸
é¤ Project ä¸ä»¥åçç¼è¯çä¸è¥¿ï¼éæ°åæ¥ã
- `mvn eclipse:eclipse` ï¼å¼å§ç¼è¯ Maven ç Project ã
- `mvn clean package` ï¼æ¸
é¤ä»¥åçå
åéæ°æå
ã
#### 8.Maven æåªäºä¼ç¹å缺ç¹
1ï¼ä¼ç¹
- ç®åäºé¡¹ç®ä¾èµç®¡çã
å½å¹´ï¼å¤å°äººè¢« SSH æ´åææ»ææ´»ï¼å¾å¤æ¶åï¼æ¯å 为ä¾èµä¸å®æ´ï¼æè
çæ¬ä¸æ£ç¡®ãèªä» Maven åºæ¥åï¼ç»äºå¯ä»¥æ çäº~å½ç¶ï¼ä¹æä¸é¨åå峿¯ Spring Boot ï¼è¿æ¯åè¯ã
- æäºä¸æï¼å¯¹äºæ°æå¯è½ä¸ä¸ª `mvn clean package` å½ä»¤å°±å¯è½æ»¡è¶³æä»¬çå·¥ä½ã
- 便äºä¸æç»éæå·¥å
·(Jenkins)æ´åã
- 便äºé¡¹ç®åçº§ï¼æ 论æ¯é¡¹ç®æ¬èº«åçº§è¿æ¯é¡¹ç®ä½¿ç¨çä¾èµå级ã
- æå©äºå¤æ¨¡å项ç®çå¼åï¼ä¸ä¸ªæ¨¡åå¼å好åï¼åå¸å°ä»åºï¼ä¾èµè¯¥æ¨¡åæ¶å¯ä»¥ç´æ¥ä»ä»åºæ´æ°ï¼èä¸ç¨èªå·±å»ç¼è¯ã
- Maven æå¾å¤æä»¶ï¼ä¾¿äºåè½æ©å±ï¼æ¯å¦ç产ç«ç¹ï¼èªå¨åå¸çæ¬çã
2ï¼ç¼ºç¹
- Maven æ¯ä¸ä¸ªåºå¤§çæå»ºç³»ç»ï¼å¦ä¹ é¾åº¦å¤§ã
è¿éçå¦ä¹ ï¼æ´å¤æç宿´å¦ä¹ ãå¦æåºæ¬ä½¿ç¨ï¼å¹¶ä¸ä¼åå¨è¯¥é®é¢ã
- Maven éç¨çº¦å®ä¼äºé
ç½®ççç¥(convention over configuration)ï¼è½ç¶ä¸æå®¹æï¼ä½æ¯ä¸æ¦åºäºé®é¢ï¼é¾äºè°è¯ã
è¿ä¸ªç¡®å®ï¼ç¥å¾®çè¦ã
- å½ä¾èµå¾å¤æ¶ï¼m2eclipse èæ¯æå¾ Eclipse å¾å¡ã
ä½¿ç¨ IDEA ï¼è䏿¯ Eclipse ï¼å®ç¾è§£å³ã
- ä¸å½çç½ç»ç¯å¢å·®ï¼å¾å¤ repository æ æ³è®¿é®ï¼æ¯å¦ Google Codeã JBoss ä»åºæ æ³è®¿é®çã
è¿ä¸ªä¹å¥½è§£å³ï¼å¨ `