è€æ°ã¢ãžã¥ãŒã«ã®Mavenãããžã§ã¯ãã§äœæ¥ããå Žåãå€ãã®å Žåãè€æ°ã®é¢é£ã¢ãžã¥ãŒã«ãåæã«å€æŽããå¿ èŠããããŸãã ãŸãã圱é¿ãåããã¢ãžã¥ãŒã«ã®ã¿ããã«ãããå Žåãæ®å¿µãªããmavenã¯èªååããããã®ãæäŸããŸããã å°ãã°ãŒã°ã«ã§æ€çŽ¢ãããšãstackoverflowã§ç°¡åãª1è¡ã®ãœãªã¥ãŒã·ã§ã³ãèŠã€ããããšãã§ããŸãã
mvn install -amd -pl $(svn st | colrm 1 8 | sed 's /.* ' | xargs echo | sed 's- -,:-g' | sed 's ^ : ')
ããã§çµãããããããŸããã ããããç§ã¯ãã£ãšæ¬²ããã£ã-ããå ·äœçã«ãã©ã®ããã«ãããéæãããã
bashãmvnããŸãã¯svnãåããŠã®å Žåã¯ãã¹ã¯ãªããã®ç°¡åãªèª¬æïŒ
- äž»ãªéšåã¯mvn install -amd -pl project_listã§ãã Mavenã®ããŒã ã project_listããã³ãã®äŸåé¢ä¿ãããããžã§ã¯ããåéããŸã
-
$(...)
å ã«ããã®ã¯ãsvnã§ããŒã«ã«ã®å€æŽãååŸãããããã®å€æŽãããããžã§ã¯ãåãååŸããããšã§ã
ãªããããå¿ èŠã§ãã
次ã®ç°¡åãªã·ããªãªãæ€èšããŠãã ããã
- ã¢ãžã¥ãŒã«Aã®Parentableã€ã³ã¿ãŒãã§ã€ã¹ã«æ°ããã¡ãœãããè¿œå ããŸã
- ãã®ã¡ãœããã¯ãã¢ãžã¥ãŒã«Bã®ChildïŒParentableãå®è£ ïŒã¯ã©ã¹ã«å®è£ ããŸã
ã¢ã»ã³ããªã確èªããã«ã¯ãAãBãåå¥ã«ã¢ã»ã³ãã«ããå¿ èŠããããŸããChildã®å®è£ ã®ã¿ãå€æŽãããå ŽåãBã®ã¿ãåæ§ç¯ããã ãã§ååã§ãããã ããã¡ãœããã®ã·ã°ããã£ãå€æŽãããå Žåã¯ãäž¡æ¹ã®ã¢ãžã¥ãŒã«ãå床åéããå¿ èŠããããŸãã
ãã®çš®ã®äœæ¥ã§ã¯ãããããžã§ã¯ãBã®ã¢ã»ã³ããªã¯éèŠã§ããïŒã 2ã3åã®ãããžã§ã¯ããããå Žåã¯äŸ¿å©ã§ãããããã«ãããžã§ã¯ãããããIDEãä»ãããªãã¡ã¯ã¿ãªã³ã°ã䜿çšãããŠããå Žåãã¢ã»ã³ããªã®é¢é£æ§ããªããªãç¬éãèŠéãããšã¯éåžžã«ç°¡åã§ãã
äžèšã®ã¹ã¯ãªããã®äœãåé¡ã«ãªã£ãŠããŸãã
äžèšã®ã¹ã¯ãªããã¯ãã®åé¡ãäžåšçšã«è§£æ±ºããŸããåžžã«AãšBãåéããŸããããã¯æéã®é¢ã§ã¯ããŸãå¹æçã§ã¯ãããŸããããæ¯èŒçå®å šã§ãã ããªãã¯äœããéããããšãå¿ããªãã§ãããã ç§ã¯ãã®ã¢ãããŒããçŽ1ãæ䜿çšããŸãããããã®äœåãªæéãè²»ãããããåéããããšãå¿ããæ¹ãè¯ããšå€æããŸããã
ãã®åé¡ã«å ããŠããã®ã¹ã¯ãªãããæ©èœããªãå ŽåãMavenæ©èœã«é¢é£ããä»ã®å€ãã®åé¡ããããŸãã 以äžã§èª¬æããŸãã
äœãè¡ããã
ãã®ã¹ã¯ãªããã®ã¢ã€ãã¢ãåºç€ãšããŠããã¡ã€ã«ïŒãã®å Žåã¯ãããïŒã§ä¿®æ£ããŸããã ç®æšã¯ãå€æŽããããŸã åéããŠããªããã¹ãŠã®ãã®ãåéããã¹ã¯ãªãããååŸããããšã§ããã ãããŠãã以äžã
bashã§ã¹ã¯ãªãããå€æŽããããšã¯ãããã€ãã®çç±ã§ãããããä»äºã§ãã ãããã£ãŠãéçºã¯pythonã§è¡ãããŸããã ããããïŒ
- ã¯ãã¹ãã©ãããã©ãŒã
- ã¢ãžã¥ãŒã«æ§
- ã»ãŒãã¹ãŠã®LinuxãŠãŒã¶ãŒãšå€ãã®ãŠã£ã³ããŠãŠãŒã¶ãŒã䜿çšããŠããŸãã
- ã·ã³ãã«ã
ãã¡ãããç§ã¯ãããååŸããŠäœ¿çšãããã ããªã®ã§ãæšæºã©ã€ãã©ãªã ããäŸåé¢ä¿ã«ãããŸãã
ããã§ã¯ããã®èšäºã®äž»èŠéšåããå§ããŸããã-çŽé¢ããªããã°ãªããªãåé¡ãšã䜿çšããã解決çã®èª¬æã§ãã
äœãã§ããŸãã
èªåã§ã§ããéãå°ãªãããããã«ãmavenããçµãåºãããšãã§ããæ倧å€ãææ¡ããŠãããšäŸ¿å©ã§ãã æ倧å€ã¯ããã»ã©å€§ãããããŸããã 次ã®é åã¯ãMavenã§åéã§ããŸãã
- 1ã€ã®ãããžã§ã¯ã
- 1ã€ã®ãããžã§ã¯ããšãã®ãã¹ãŠã®ã¢ãžã¥ãŒã«ïŒååž°çã«ïŒ
- 1ã€ã®ãããžã§ã¯ãå ã®ã¢ãžã¥ãŒã«ã®ãªã¹ãã
ãªãã·ã§ã³3ã¯æãé©åã«èŠããå°å ¥bashã¹ã¯ãªããã§äœ¿çšãããŸãã å©ç¹ã®ãã¡ããã®ãªãã·ã§ã³ã䜿çšããå Žåããã©ã¡ãŒã¿ãŒãæå®ã§ããŸãã
- -amdïŒäŸåé¢ä¿ãäœæïŒ-mavenã¯ãã¹ãŠã®äŸåã¢ãžã¥ãŒã«ãåéããŸã
- -amïŒãŸãmakeïŒ-ãªã¹ããäŸåããã¢ãžã¥ãŒã«
ããŒã«ã«ã¢ã»ã³ããªã®å Žåããããã®ãªãã·ã§ã³ã¯ããŸã圹ã«ç«ã¡ãŸããã äŸåé¢ä¿ã¢ã»ã³ããªïŒamdïŒãCIã«å²ãåœãŠãããšãã§ããããã«ãIDEã¯Mavenãæ§ç¯ããã«ã³ã³ãã€ã«ãšã©ãŒã瀺ãããšãã§ããŸãã
ãŸãã芪ãããžã§ã¯ãïŒ-amïŒã®æ§ç¯ã¯åé·ã§ãããªããªãã å€æŽãããŠããªããããžã§ã¯ããMavenãªããžããªãããã«ã§ããŸãã
æ®å¿µãªãããããã§mavenã圹ç«ã€ããšã¯ãããŸããã å ¬å¹³ã«ã¯ãç¹å¥ãªãµãŒãããŒãã£ã®ãã©ã°ã€ã³ãå«ãŸããŠãããšèšã䟡å€ããããŸãã ã€ã³ã¯ãªã¡ã³ã¿ã«ã§ããããã®å Žåã¯ããã§ã«ååšãããã®ã§äœæ¥ããå¿ èŠãããããããžã§ã¯ãå ã§äœãå€æŽã§ããŸããã
åé¡1ïŒå®éã®å€æŽã®ã¿ãåéãã
å€æŽå 容ãç解ããã«ã¯ãããŒãžã§ã³ç®¡çã·ã¹ãã ã§ãã¡ã€ã«ã®ã¹ããŒã¿ã¹ã䜿çšããã®ãæã䟿å©ã§ãã ãã ããVCSã¯ãããã®å€æŽããã€è¡ãããããã¢ã»ã³ããªã«å«ãŸããŠãããã©ããã«ã€ããŠã¯äœãç¥ãããŸããã ããã§ããVCSã®ãã¹ãŠã®å€æŽç¹ã®ãªã¹ãã¯ãåœç€Ÿã®ã¢ã¯ãã£ããªãããžã§ã¯ãã§ããããããªãåæã®åºçºç¹ã§ãã
å€æŽãã¢ã»ã³ããªãšã©ã®ããã«äžèŽãããã調ã¹ãããã«ããã¡ã€ã«ãå€æŽãããæ¥ä»ãšæåŸã®ãã«ãã®æ¥ä»ïŒtarget / artifact_id-version.jarïŒãæ¯èŒããŸãã
æåã®è¿äŒŒå€ãšããŠã¯è¯ãã®ã§ãããèæ ®ããªããã°ãªããªããã¥ã¢ã³ã¹ããããŸãã
- VCSããä»ã®å€æŽãæ¥ãå Žåããããžã§ã¯ããå床çµã¿ç«ãŠãå¿ èŠããããŸã
- target / artifact_id-version.jarãããã©ã«ãå€ã§ãã å®å šã«ç°ãªãå ŽåããããŸã
- å€æŽããããã¡ã€ã«ã¯ãã¢ã»ã³ããªã«é¢é£ããªãå ŽåããããŸãïŒããšãã°ãIDEã®ãããžã§ã¯ããã¡ã€ã«ïŒã
ãã€ã³ã1ã¯ãããŒã«ã«ã§å€æŽããããã¡ã€ã«ã ãã§ãªããã¢ã¯ãã£ããªãããžã§ã¯ãå ã®ãã¹ãŠã®ãã¡ã€ã«ãåæããããšã§è§£æ±ºã§ããŸãã
ä»ã®2ã€ã®åé¡ã¯ãpomãã¡ã€ã«ããå¿ èŠãªæ å ±ãååŸããã¢ã»ã³ããªäžã«ãããèæ ®ããã ãã§è§£æ±ºãããŸãã
åé¡2ïŒããŒã«ããã¯ã®å€æŽ
å€æŽããããã¢ãŒãã£ãã¡ã¯ããåéããå Žåããããã®å€æŽãããŒã«ããã¯ãããšãã«ãã¢ãŒãã£ãã¡ã¯ããåæ§ç¯ããå¿ èŠããããŸãã ãã ããVCSã®ã¹ããŒã¿ã¹ã¯ããã®ãããªãã¡ã€ã«ã«é¢ããæ å ±ãæäŸããŸããã ãããã£ãŠããã®æ å ±ãèªåã§ä¿åãã䟡å€ããããŸãã ãããè¡ãã«ã¯ãçŸåšã®å€æŽããããããžã§ã¯ããåæããåŸããã®æ å ±ãã©ããã«ä¿åãã次ã®ãã«ãã§çŸåšã®å€æŽãšä¿åããããã¡ã€ã«ã®åã®å€æŽãçµåããŸãã
åé¡3ïŒã¡ã€ã³ãããžã§ã¯ãã«å«ãŸããŠããªãã¢ãžã¥ãŒã«
Mavenãããžã§ã¯ãã®æ£ããæ§é ã¯ãåãããžã§ã¯ãã芪ãããžã§ã¯ãã®ã¢ãžã¥ãŒã«ãšããŠèšè¿°ãããŠãããã®ã§ãã ã€ãŸã ã«ãŒãã§mvn installãå®è¡ãããã ãã¹ãŠã®å éšãããžã§ã¯ãã䜿çšããå¿ èŠããããŸãã
ãã¹ãŠãæ£ãããã°ããã¹ãŠãããã·ã³ãã«ã«ãªããŸãã ããããããã¯åžžã«ããã§ã¯ãããŸããã ãã®å Žåãã¢ã³ã¿ã€ããããžã§ã¯ãããããŸãã ããã¯æ£ããMavenã«ã¯é©ããããã®ãããªãããžã§ã¯ãã-plã§ã¹ãªãããããšã圌ã¯ããªãã«ãšã©ãŒãåãåºããŸãã -plã¯ã芪ãããžã§ã¯ãã®ãµãã¢ãžã¥ãŒã«ãšããŠãªã¹ããããŠãããããžã§ã¯ãã§ã®ã¿æ©èœããŸãã
åé¡ã解決ããã«ã¯ããã®ãããªãããžã§ã¯ããåå¥ã«åéããå¿ èŠããããŸãã ã€ãŸã Mavenã¯ãé¢é£ã®ãªãã«ãŒããããžã§ã¯ããšåãåæ°ã ãèµ·åãããŸãã
ç©äºãè€éã«ããããã«ããããã®ãããžã§ã¯ããçžäºæ¥ç¶ããããšç¶æ³ãäŸç¶ãšããŠçºçããå¯èœæ§ããããããç¹å®ã®é åºã§ããããåéããå¿ èŠããããŸãã
åé¡4ïŒããŒã«ã«Mavenãªããžããªã®åæ
Mavenã¯åžžã«ããŒã«ã«ãªããžããªã®ã¢ãŒãã£ãã¡ã¯ãã«åºã¥ããŠãã«ããè¡ããŸãã å®æçã«ãããŒã«ã«ãªããžããªãåæããã°ããŒãã«ãªããžããªããæŽæ°ãããŠã³ããŒãã§ããŸãã
ãã®ãããå€æŽãåéãããã¡ã€ã«ãå€æŽããªããªã£ããšãã«ç¶æ³ãçºçããå¯èœæ§ããããŸãã ãã ããé ããæ©ãããããŒã«ã«ã¢ã»ã³ããªã¯å€éšã®å€æŽã«ãã£ãŠçœ®ãæããããŸãã 1ã€ã®è§£æ±ºçã¯ãã¿ãŒã²ãããã¡ã€ã«ã§ã¯ãªãããŒã«ã«ãªããžããªã§å€æŽã®æ¥ä»ããã§ãã¯ããããšã§ãã ãããŠãããããç°ãªãå Žåã¯ãæ°ãããã«ããäœæããå¿ èŠããããŸãã
ãã ããã¿ãŒã²ããã§ãã§ã«åéããããã¡ã€ã«ã¯æ£ãããŸãŸã§ãããã ããããããè¿œãåºãããšã¯ãããŸããã ãŸããäºéã®äœæ¥ãè¡ããªãããã«ãå®å šãªã¢ã»ã³ããªãå®è¡ãã代ããã«ãããŒã«ã«ãªããžããªã«åçŽã«ããããããããšãã§ããŸãã
åé¡5ïŒè©³çŽ°ãªMaven
ããã¯ãŸã£ããåé¡ã§ã¯ãããŸããããå人çã«ã¯ãmavenãéåžžã«å€ãã®ãã°ãçºè¡ããçç±ã¯åžžã«çåã§ãã 座ã£ãŠçæ³ããªãéããèµ°ã£ãŠããã©ã€ã³ãèŠãŸãã ãããããã¹ãŠãããŸãããã°ããããã®ãã°ã¯ãŸã£ããé¢çœããããŸããã ãã¹ãŠãããŸããããªãã£ãå Žåããã°ã¯æ¬åœã«åœ¹ç«ã¡ãŸãã ãã®ååã«ããããã°ãååŸããŸãã
çŽç²ãªåºåã«å¯ŸããçŽ æŽãããããŒãã¹ãšããŠããã«ãé床ãå€§å¹ ã«åäžããŸãã IOã¯æãå®äŸ¡ãªæäœã«ã¯ã»ã©é ãã§ãã
åé¡6ïŒé ãMaven察éãåé¿ç
äžèšã®åé¡ã®å€ãã¯ãè¿œå æ å ±ãMavenããåä¿¡ãããå Žåã«ããç°¡åã«è§£æ±ºã§ããŸãã ãããã圌ã¯éåžžã«é ããã³ãã³ããéåžžã«é·ãæéå®è¡ããŸãã ããããã«ãŒãã§äœ¿çšããããšã¯ã匷åãªããã©ãŒãã³ã¹ãªãŒããŒããããè¿œå ãã確å®ãªæ¹æ³ã§ãã
ãããã£ãŠããã¹ãŠã®åé¡ã¯ããã®èœåãšèœåãæ倧éã«æŽ»çšããŠç¬èªã«è§£æ±ºãããMavenã¯ã¢ã»ã³ããªèªäœãéå§ããããã«äžåºŠã ã䜿çšãããŸãã
ãã ããMavenããã€ãã¹ããè©Šã¿ã¯ãã¹ãŠå®äºããŠããããã§ã¯ãªããå€ãã®è¿œå èŠå ãèæ ®ããŠããªãå ŽåããããŸãã ãããžã§ã¯ãã®çŸåšã®æ§æã«ã€ããŠã¯ãããã§ååã§ããããã以äžã®é«åºŠãªæ§æã¯èæ ®ãããŸããã
ããŒãã¹1ïŒãã«ããµãŒããŒã®ã¹ã¯ãªãã
äžèšã®ãã¹ãŠã¯ãèªåã§å€æŽãå ããéã«ããŒã«ã«ã¢ã»ã³ããªã®ããã«èšè¿°ããã䜿çšãããŸããã
ããããæåãã䜿çšçµéšã®åŸããã®ã¢ãããŒãã¯ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãµãŒããŒã§äœ¿çšã§ãããªããžã§ã³éã§å€æŽããããã®ã®ã¿ãåéã§ãããšå€æããŸããã ãã¡ãããããŒã«ã«ã¢ã»ã³ããªã«ã€ããŠèª¬æããåé¡ã®ã»ãšãã©ãèæ ®ããå¿ èŠããããŸãã ãã®ãããäž¡æ¹ã®ããŒãžã§ã³ã®ã¹ã¯ãªãããå¯æ¥ã«é¢é£ããŠããŸãã
ãã®ãããªã€ã³ã¯ãªã¡ã³ã¿ã«ã¢ã»ã³ããªã¯ãå®å šãªã¢ã»ã³ããªãšãŸã£ããåãçµæã«ãªãããšãéèŠã§ãã ããã¯ãäžèšã®åãmaven -amdãã©ã¡ãŒã¿ãŒã䜿çšããŠç°¡åã«å®çŸã§ããŸãã ã€ãŸã å€æŽããã³/ãŸãã¯äžå¿«æãåéãããŸãã
åãåã£ãã²ã€ã³ã«é¢ããŠ-ç§ãã¡ã®å Žåãã€ã³ã¯ãªã¡ã³ã¿ã«ã¢ã»ã³ããªã®å¹³åæéã¯10åã®1ã§ãã
TeamCityã§ã¯ããã®ãããªæ©äŒã¯ããã«å©çšã§ããŸãã 竹ã«ã¯ãããŸããã ä»ã®CIã«ã€ããŠç¥ããªã
ããŒãã¹2ïŒPythonãããžã§ã¯ãããçž®å°åš
ãã®ã»ã¯ã·ã§ã³ã¯ãmavenãjavaãšã¯é¢ä¿ãããŸãããPythonéçºè
ã®ã¿ãé¢å¿ãæã£ãŠããå¯èœæ§ããããŸãã
ããã§èª¬æããŠããã¹ã¯ãªããã¯ãããã€ãã®ã¢ãžã¥ãŒã«ãæã€ãããžã§ã¯ããšããŠèšè¿°ãããŠããŸãã ã³ãŒããæäœããæ¹ãç°¡åã§ãã
ããããè€æ°ã®ãã¡ã€ã«ãå«ãã¹ã¯ãªãããå ±æããããšã¯ããŸã䟿å©ã§ã¯ãããŸããã
ãŸãã¯ãã¹ã¯ãªããããåäžã®ãã€ããªããã«ãããŠçºè¡ããããšãã§ããŸãã ãããããã®å Žåããã®å Žã§ä¿®æ£ããããã§èµ·ãã£ãŠããããšãç解ããå¯èœæ§ã¯å€±ãããŸãã
ãã®ãããå¥ã®ã¹ã¯ãªãããéæ»ã§èšè¿°ãããŠãããå ¥åãšããŠpythonãã¡ã€ã«ãåãåãããããšãã¹ãŠã®äŸåã¢ãžã¥ãŒã«ãæãããã¿ãŸãã åºåã¯åäžã®ãã¡ã€ã«ã§ãã åæã«ãäžèŠãªç©ºã®è¡ãåé€ãããŸãã
ãšãããŒã°
ããã§èª¬æããŠããã¹ã¯ãªããã¯ãç§ãšååã«ãã£ãŠ1幎é䜿çšãããŠããŸãã CIã®ã¹ã¯ãªããã¯çŸåšãã¹ãæäœäžã§ãã
ã¹ã¯ãªããã®ããã©ãŒãã³ã¹ã¯ããªã蚱容ç¯å²ã§ãããããžã§ã¯ãå ã§ã®åæãšæé©åïŒã€ãŸãã1ç§æªæºïŒã«æ°ä»ããŸããã
ãããŸã§ã®ãšãããããã¯svnã§ã®ã¿åäœããŸãã ä»ã®VCSã§åéããå¿ èŠã¯ãããŸããã ãã ãããªãã·ã§ã³ã§ãä»ã®ãŠãŒã¶ãŒãç°¡åã«è¿œå ã§ããŸãã VCSã®å©ç¹ã¯ããã»ã©å¿ èŠã§ã¯ãããŸããã
â ãããžã§ã¯ããžã®ãªã³ã¯
ç§ã®ã¢ãããŒããšã¹ã¯ãªããããä»ã®èª°ããmavenã䜿çšããŠæ§ç¯ããæéãšåŽåãç¯çŽã§ããããã«ãªãã°ãç§ã¯éåžžã«å¹žãã«ãªããŸãã
質åãèšæ£ãè¿œå ã¯å€§æè¿ã§ãã