Mavenã¯ãJavaãããžã§ã¯ãã®ç®¡çãšãã«ããè¡ãããã®ããŒã«ã ãã
Mavenã䜿ããšããããžã§ã¯ããäŸåããŠãããªãœãŒã¹ïŒjarããã±ãŒãžïŒãç°¡åãã€ã¹ããŒãã£ã«ç®¡çã§ããŠãããŒãžã§ã³ã®è¡çªãé¿ãããããã ãæšæºçã§çµ±äžããããããžã§ã¯ãæ§é ãããã©ãããã©ãŒã ã«äŸåããªãèªåãã«ãæ¹æ³ãæäŸããŠããããã
ã€ã³ã¹ããŒã«
å
¬åŒãµã€ã
ã§ããŠã³ããŒãããŠè§£åããããããŒã«ã«ãªããžããªãèšå®ããããconf/setting.xml ã® <localRepository> ãç¹å®ã®ãã£ã¬ã¯ããªã«å€æŽãããã ã
| |
ã¢ãªããã¯ã©ãŠãïŒAliyunïŒã®ãã©ã€ããŒããã©ãŒãèšå®ããã«ã¯ãconf/setting.xml ã® <mirror> ã¿ã°å
ã«åã¿ã°ã远å ããŠãã
| |
ç°å¢å€æ°ã®èšå®ïŒMAVEN_HOME ãMavenã®è§£åãã£ã¬ã¯ããªã«ããŠããã®äžã® bin ãã£ã¬ã¯ããªã PATH ç°å¢å€æ°ã«è¿œå ãããã
ã€ã³ã¹ããŒã«å®äºã®ãã¹ãïŒã³ãã³ãã©ã€ã³ã§ mvn -v ãå
¥åããŠåºåã確èªããŠã¿ãŠã
äŸåé¢ä¿ã®èšå®
äŸåé¢ä¿ïŒDependencyïŒïŒãããžã§ã¯ãã®å®è¡ã«å¿ èŠãª jar ããã±ãŒãžã®ããšã1ã€ã®ãããžã§ã¯ãã«è€æ°ã®äŸåé¢ä¿ãå°å ¥ã§ãããã
èšå®ã®æé ïŒ
pom.xmlã«<dependencies>ã¿ã°ãæžã<dependencies>ã¿ã°ã®äžã§<dependency>ã䜿ã£ãŠåº§æšãå°å ¥ãã- 座æšã®
groupId,artifactId,versionãå®çŸ©ãã - èšå®ãæŽæ°ããŠãæ°ãã远å ãã座æšãåã蟌ã
| |
äŸåé¢ä¿ã®åº§æšæ å ±ã¯ https://mvnrepository.com/ ã§æ¢ãããã
äŸåé¢ä¿ã®æšç§»
äŸåé¢ä¿ã«ã¯æšç§»æ§ããããã ã
- çŽæ¥äŸåïŒä»ã®ãããžã§ã¯ãã§äŸåèšå®ãéããŠçŽæ¥äœãããäŸåé¢ä¿ã
- 鿥äŸåïŒäŸåããŠãããªãœãŒã¹ãä»ã®ãªãœãŒã¹ã«äŸåããŠããå Žåãä»ã®ãããžã§ã¯ãã鿥çã«ãã®ãªãœãŒã¹ã«äŸåããããšã«ãªãã
äŸåé¢ä¿ã远å ãããšãããã®ããã±ãŒãžãä»ã®ããã±ãŒãžã«äŸåããŠããã°ãé¢é£ããããã±ãŒãžãèªåçã«è¿œå ããããã
ãã¡ãããããããã±ãŒãžã®ãµãããã±ãŒãžãå¿ èŠãªãå Žåã¯ãäŸåé¢ä¿ãé€å€ããããšãã§ããïŒäŸåãèªãæã¡åããªãœãŒã¹ã«ã€ããŠã¯ãããŒãžã§ã³ãæå®ããå¿ èŠã¯ãªããïŒã
| |
äŸåé¢ä¿ã®ã¹ã³ãŒã
äŸåããŠãã jar ããã±ãŒãžã¯ãããã©ã«ãã§ã¯ã©ãã§ã䜿ãããã©ã<scope>...</scope> ã䜿ã£ãŠãã®æå¹ç¯å²ãèšå®ã§ãããã ã
- ã¡ã€ã³ããã°ã©ã ã®ç¯å²ã§æå¹ïŒmain ãã©ã«ãå ïŒ
- ãã¹ãããã°ã©ã ã®ç¯å²ã§æå¹ïŒtest ãã©ã«ãå ïŒ
- ããã±ãŒãžã³ã°ããŠå®è¡ããéã«å«ãŸãããïŒpackage ã³ãã³ãã®ç¯å²å ïŒ
| scopeã®å€ | ã¡ã€ã³ããã°ã©ã | ãã¹ãããã°ã©ã | ããã±ãŒãžã³ã° (å®è¡) | äŸ |
|---|---|---|---|---|
| compile (ããã©ã«ã) | Y | Y | Y | log4j |
| test | - | Y | - | junit |
| provided | Y | Y | - | servlet-api |
| runtime | - | Y | Y | jdbc ãã©ã€ã |
| |
ã©ã€ããµã€ã¯ã«
Maven ã®ã©ã€ããµã€ã¯ã«ã¯ããã¹ãŠã® Maven ãããžã§ã¯ãã®ãã«ãããã»ã¹ãæœè±¡åããŠçµ±äžããããã«ãããã ã
Maven ã«ã¯ãäºãã«ç¬ç«ãã 3 ã€ã®ã©ã€ããµã€ã¯ã«ããããïŒ
- cleanïŒæé€äœæ¥
- defaultïŒã³ã¢äœæ¥ïŒã³ã³ãã€ã«ããã¹ããããã±ãŒãžã³ã°ãã€ã³ã¹ããŒã«ããããã€ãªã©ïŒ
- siteïŒã¬ããŒãçæããµã€ãå ¬éãªã©
ããããã®ã©ã€ããµã€ã¯ã«ã¯ããã€ãã®ãã§ãŒãºïŒphaseïŒã§æ§æãããŠããŠããã§ãŒãºã«ã¯é çªããããã ãåŸã®ãã§ãŒãºã¯åã®ãã§ãŒãºã«äŸåããŠãããã
clean
- pre-clean
- cleanïŒååãã«ãã§çæããããã¡ã€ã«ïŒtarget ãã©ã«ãïŒãåé€ãã
- post-clean
default
- validate
- initialize
- generate-sources
- process-sources
- generate-resources
- process-resources
- compileïŒãããžã§ã¯ãã®ãœãŒã¹ã³ãŒããã³ã³ãã€ã«ãã
- process-classes
- generate-test-sources
- process-test-sources
- generate-test-resources
- process-test-resources
- test-compile
- process-test-classes
- testïŒé©åãªãŠããããã¹ããã¬ãŒã ã¯ãŒã¯ïŒjunitïŒã䜿ã£ãŠãã¹ããå®è¡ãã
- prepare-package
- packageïŒã³ã³ãã€ã«åŸã®ãã¡ã€ã«ã jar ã war ãªã©ã«ããã±ãŒãžã³ã°ãã
- verify
- installïŒãããžã§ã¯ããããŒã«ã«ãªããžããªã«ã€ã³ã¹ããŒã«ãã
- deploy
site
- pre-site
- site
- post-site
- site-deploy
åãã©ã€ããµã€ã¯ã«ã®äžã§åŸã®ãã§ãŒãºãå®è¡ãããšãããããåã®ãã§ãŒãºããã¹ãŠå®è¡ããããã
ãã«ãã¢ãžã¥ãŒã«èšèš
ãã«ãã¢ãžã¥ãŒã«èšèšãšã¯ããããžã§ã¯ãã®èšè𿮵éã§å€§ããªãããžã§ã¯ããããã€ãã®ã¢ãžã¥ãŒã«ã«åå²ããããšãåã¢ãžã¥ãŒã«ã¯ç¬ç«ããŠããŠãå¥ã®ã¢ãžã¥ãŒã«ã®æ©èœãå¿ èŠã«ãªã£ããããã®ã¢ãžã¥ãŒã«ãäŸåé¢ä¿ãšããŠè¿œå ããã ãã§ãããã ã
å ±éã®ãšã³ãã£ãã£ã¯ã©ã¹ãããŒã«ã¯ã©ã¹ãç¬ç«ããã¢ãžã¥ãŒã«ã«ããŠããã°ãããã¢ãžã¥ãŒã«ã§ããã䜿ãããæã«å¯Ÿå¿ããäŸåé¢ä¿ãå ¥ããã ãã§æžããã
ãããžã§ã¯ãã®ç®¡çã»ã¡ã³ããã³ã¹ã»æ¡åŒµããããããªãããã¢ãžã¥ãŒã«éã®åŒã³åºãããªãœãŒã¹ã®å ±æã䟿å©ã«ãªããã ã
ç¶æ¿
Lombok ã¿ãããªäŸåé¢ä¿ã¯ããããžã§ã¯ãã®å šã¢ãžã¥ãŒã«ã§äœ¿ããããããªããããåã¢ãžã¥ãŒã«ã§æ¯å宣èšããã®ã¯é¢åã ãã©ãç¶æ¿ã䜿ãã°ãã®åé¡ã解決ã§ãããã
ç¶æ¿é¢ä¿
芪ãããžã§ã¯ããäœæããŠãã¢ãžã¥ãŒã«å ±éã®äŸåé¢ä¿ã芪ãããžã§ã¯ãã«ãŸãšããŠèšå®ãããã ãåãããžã§ã¯ãã芪ãããžã§ã¯ããç¶æ¿ããã°ãäŸåé¢ä¿ãç¶æ¿ããããããååãããžã§ã¯ãã§èšå®ããå¿ èŠããªããªããã
ç¶æ¿ã¯ 2 ã€ã®ãããžã§ã¯ãéã®é¢ä¿ã衚ããã®ã§ãJava ã®ç¶æ¿ãšäŒŒãŠãããã ãåãããžã§ã¯ãã¯èŠªãããžã§ã¯ãã®èšå®æ å ±ãç¶æ¿ã§ãããç¹ã«ããããã®ãäŸåé¢ä¿ã®ç¶æ¿ã§ãããã«ãã£ãŠäŸåèšå®ãç°¡ç¥åããäžæ¬ç®¡çã§ããããã«ãªããã
| |
JavaWeb éçºãªãã芪ãããžã§ã¯ãã« spring-boot-starter-parent ãç¶æ¿ãããŠãä»ã®ã¢ãžã¥ãŒã«ããã®èŠªãããžã§ã¯ããç¶æ¿ãã圢ã«ã§ãããã
æ®éããã¡ã€ã«æ§é äžã§ã¯ãåãããžã§ã¯ãã¯èŠªãããžã§ã¯ãã®ãµããã£ã¬ã¯ããªã«ãªããã
以äžã¯äŸïŒ
- 芪ãããžã§ã¯ãã®ããã±ãŒãžã³ã°æ¹åŒã
pomã«ãã
| |
Maven ã®ããã±ãŒãžã³ã°æ¹åŒïŒ
- jarïŒéåžžã®ã¢ãžã¥ãŒã«ãSpringBoot ãããžã§ã¯ãã¯åºæ¬ jar ããã±ãŒãžïŒtomcat å èµã§åãïŒã
- warïŒéåžžã® Web ããã°ã©ã ãå€éšã® tomcat ãµãŒãã«ãããã€ããŠåããå¿ èŠãããã
- pomïŒèŠªãããžã§ã¯ããéçŽãããžã§ã¯ãããã®ã¢ãžã¥ãŒã«ã«ã¯ã³ãŒããæžãããäŸåé¢ä¿ã®ç®¡çã ããè¡ãã
- åãããžã§ã¯ãã§èŠªãããžã§ã¯ããæå®ãã
| |
- 芪ãããžã§ã¯ãã§å ±éã®äŸåé¢ä¿ãèšå®ãã
| |
ããŒãžã§ã³ããã¯
äžéšã®ã¢ãžã¥ãŒã«ã«ã¯å¿
èŠã ãã©ãä»ã®ã¢ãžã¥ãŒã«ã«ã¯å¿
èŠãªãäŸåé¢ä¿ãããå Žåã芪ãããžã§ã¯ãã§äŸåé¢ä¿ã® version ã管çããŠãããšã倿Žã楜ã«ãªããã
<dependencyManagement> ã¿ã°ã§äŸåé¢ä¿ã®ããŒãžã§ã³ã管çã§ãããã ã
芪ãããžã§ã¯ãïŒ
| |
åãããžã§ã¯ãïŒ
| |
芪ãããžã§ã¯ãã®
<dependencyManagement>èšå®ã¯ããŒãžã§ã³ã管çããã ãã§ãäŸåé¢ä¿ãåãããžã§ã¯ãã«èªåå°å ¥ããããšã¯ãªãããåãããžã§ã¯ãåŽã§å°å ¥ããŠåããŠäœ¿ããããã«ãªããã ãã©ããã®æã«ããŒãžã§ã³çªå·ãæå®ããå¿ èŠããªããªããã ãäžæ¹ã§ã
<dependencies>ã¯äŸåé¢ä¿ãåãããžã§ã¯ãã«åŒ·å¶çã«ç¶æ¿ããããã
ããããã£èšå®
ã«ã¹ã¿ã ããããã£ã䜿ã£ãŠã芪ãããžã§ã¯ãã§äŸåé¢ä¿ã®ããŒãžã§ã³ãäžç®æã§ç®¡çã»ã¡ã³ããã³ã¹ããããšãã§ãããã
ããããã£ã®å®çŸ©ïŒ
| |
ããããã£ã®åŒçšïŒ
| |
ããã§èŠªãããžã§ã¯ãã«ãã¹ãŠã®ããŒãžã§ã³çªå·ããŸãšããŠç®¡çã§ãããã
| |
äŸåé¢ä¿ã®ããŒãžã§ã³ã倿Žããããšãã¯ã芪ãããžã§ã¯ãã®ã«ã¹ã¿ã ããããã£ã®å€ãæžãæããã ãã§ OK ã ãã
éçŽ
ããã¢ãžã¥ãŒã«ãå¥ã®ã¢ãžã¥ãŒã«ã«äŸåããŠããå Žåããã®ã¢ãžã¥ãŒã«ãããã±ãŒãžã³ã°ããåã«ããŸãäŸåå
ã®ã¢ãžã¥ãŒã«ãããŒã«ã«ãªããžããªã« install ããªããšãããªããã ãäŸåã¢ãžã¥ãŒã«ãå€ããšããã®æäœããããé¢åã ããã
Maven ã®éçŽïŒAggregationïŒã䜿ãã°ããããžã§ã¯ãã®äžæ¬ãã«ãïŒã¯ãªãŒã³ãã³ã³ãã€ã«ããã¹ããããã±ãŒãžãã€ã³ã¹ããŒã«ãªã©ïŒãç°¡åã«ã§ãããã
- éçŽïŒ è€æ°ã®ã¢ãžã¥ãŒã«ãäžã€ã®å šäœãšããŠãŸãšããåæã«ãããžã§ã¯ããæ§ç¯ããããšã
- éçŽãããžã§ã¯ãïŒ ããžãã¹æ©èœãæããªãã空ãã®ãããžã§ã¯ãïŒpom ãã¡ã€ã«ã®ã¿ãæã€ãäžè¬çã«ãç¶æ¿é¢ä¿ã®èŠªãããžã§ã¯ããšéçŽãããžã§ã¯ãã¯åããã®ã«ãããïŒã
- 圹å²ïŒ ãããžã§ã¯ãã®é«éãã«ãïŒäŸåé¢ä¿ã«åãããŠæåã§ãã«ãããå¿ èŠããªããéçŽãããžã§ã¯ãã§ãã«ãããã°å®äºããïŒã
éçŽãããžã§ã¯ãã® <modules> ã¿ã°ã§ãå«ãŸããåã¢ãžã¥ãŒã«ã®åç§°ãèšå®ã§ãããã ã
| |
ããšã¯éçŽãããžã§ã¯ãã§ã³ã³ãã€ã«ãããã±ãŒãžã³ã°ãã€ã³ã¹ããŒã«ã®æäœãããã ãã§ãä»ã®ãããžã§ã¯ããèªåçã«åæããŠå®è¡ããããã
| ç¶æ¿ | éçŽ | |
|---|---|---|
| åœ¹å² | äŸåèšå®ã®ç°¡ç¥åãäŸåé¢ä¿ã®äžæ¬ç®¡ç | ãããžã§ã¯ãã®é«éãã«ã |
| å ±éç¹ | ããã±ãŒãžã³ã°æ¹åŒã¯ãããã pom ã§ãéåžžäžã€ã® pom ã«ãŸãšãã | ããããèšèšçšã®ã¢ãžã¥ãŒã«ã§ãå®éã®äžèº«ïŒã³ãŒãïŒã¯ãªã |
| çžéç¹ | åã¢ãžã¥ãŒã«åŽã§é¢ä¿ãèšå®ããã 芪ã¢ãžã¥ãŒã«ã¯ã©ã®åãèªåãç¶æ¿ããŠãããç¥ããªã | éçŽãããžã§ã¯ãåŽã§é¢ä¿ãèšå®ããã éçŽãããžã§ã¯ãã¯ã©ã®ã¢ãžã¥ãŒã«ãéçŽãããŠãããç¥ã£ãŠãã |
ãã©ã€ããŒããªããžããªïŒç§æïŒ
ãã©ã€ããŒããªããžããªïŒç§æïŒã¯ç¹æ®ãªãªã¢ãŒããªããžããªã§ãããŒã«ã«ãããã¯ãŒã¯å ã«èšçœ®ããããªããžããªãµãŒãã¹ã ããå€éšã®äžå€®ãªããžããªã代çããããŒã å éšã§ã®ãªãœãŒã¹å ±æãåæã®åé¡ã解決ããããã«äœ¿ããããã ã
ãããžã§ã¯ãã§ãµãŒãããŒãã£ã®äŸåé¢ä¿ã䜿ããšããããŒã«ã«ãªããžããªã«ãªããã°èªåçã«ç§æã«ç¹ãã§ããŠã³ããŒããããç§æã«ããªããã°ãç§æãäžå€®ãªããžããªã«ç¹ãã§ããŠã³ããŒããããããç§æå ãšããŒã«ã«ãªããžããªã®äž¡æ¹ã«ä¿åããŠããããã
ç§æã¯æ®éãäŒç€Ÿã«1å°ãããã®ã ãããèªåäžäººã§èšå®ããããšã¯ããŸããªãããªã
ãªããžããªã®çš®é¡ãšãããžã§ã¯ãããŒãžã§ã³
ç§æãªããžããªã®èª¬æïŒ
- RELEASEïŒèªç€Ÿéçºãã RELEASEïŒãªãªãŒã¹ïŒããŒãžã§ã³ã®ãªãœãŒã¹ãä¿åããã
- SNAPSHOTïŒèªç€Ÿéçºãã SNAPSHOTïŒã¹ãããã·ã§ããïŒããŒãžã§ã³ã®ãªãœãŒã¹ãä¿åããã
- CentralïŒäžå€®ãªããžããªããããŠã³ããŒãããŠããäŸåé¢ä¿ãä¿åããã
ãããžã§ã¯ãããŒãžã§ã³ã®èª¬æïŒ
- RELEASEïŒãªãªãŒã¹çïŒïŒæ©èœãå®å®ããæŽæ°ãæ¢ãŸã£ããé åžå¯èœãªããŒãžã§ã³ãç§æã® RELEASE ãªããžããªã«ä¿åãããã
- SNAPSHOTïŒå¿«ç §çïŒïŒæ©èœãäžå®å®ã§ãéçºéäžã®ããŒãžã§ã³ãç§æã® SNAPSHOT ãªããžããªã«ä¿åãããã
èšå®
ç§æãžã®ã¢ã¯ã»ã¹ã®ããã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããèšå®ããããMaven ã€ã³ã¹ããŒã«ãã£ã¬ã¯ããªã® conf/settings.xml ã® servers ã«èšå®ãããã
| |
ç§æããäŸåé¢ä¿ãããŠã³ããŒãããããã®ãªããžããªã°ã«ãŒãã®ã¢ãã¬ã¹ãèšå®ããããã¡ã€ã«ã¯åãã settings.xml ã® mirrors ãš profiles ã¿ã°ã®äžã ãã
| |
pom.xml ã«ã¢ããããŒãå
ã®ã¢ãã¬ã¹ãèšå®ãããã芪ãããžã§ã¯ãã§èšå®ããã° OK ã ãã
| |
èšå®ãã§ãããã芪ãããžã§ã¯ãã® deploy ã©ã€ããµã€ã¯ã«ãå®è¡ããã°ããããžã§ã¯ããç§æãªããžããªã«å
¬éããããã