ããã§ã
Gradleãäœã§ãããããããªãå Žåã¯ãåã®2ã€ã®ã¬ãã¥ãŒã§ããã«ã€ããŠèªãããšãã§ããŸãïŒ
- GradleïŒããè¯ãæ§ç¯æ¹æ³
- GradleïŒã¿ã¹ã¯ã¯ã³ãŒãã§ã
å°ãåãMavenããGradleã«ã
Hibernate Coreã¢ã»ã³ããªã転éãããŸããã æ
å ±ã³ãã¥ããã£ã
ææ§ã«åå¿ãããã®ã Hibernateã¢ã»ã³ããªã®ç§»è¡
ã«é¢ããèšäºã®ç¿»èš³ã«æ³šç®ããŠãã ããã ãã®èšäºã§ã¯ããã®æ±ºå®ãè¡ãçç±ãæããã«ããGradleã®å©ç¹ãšMaven2ã®åé¡ã«ã€ããŠèª¬æããŸãã ãããªããã¬ãŒã·ã§ã³ã¯ãSteve Ebersoleã«ä»£ãã£ãŠè¡ãããŸãã
ãªãã°ã©ãã«ãªã®ãïŒ
å€ãã®äººããHibernateã¢ã»ã³ããªãMavenããGradleã«è»¢éãããçç±ãæžãçããŠã»ãããšé Œã¿ãŸãããããã«ãããããªã¹ãããŸãã Gradleã«åºäŒãã®ããããåããŠã®å Žåã¯ã
æŠèŠãã芧ãã ãã ã ãŸã第äžã«ããã®èšäºã®ç®çã¯ãã¯ã©ãã·ã¥ãæã€-Mavenãã§ã¯ãªããGradleãšMavenãçŽæ¥æ¯èŒããããšã§ã¯ãªãããšã匷調ããããšæããŸãã ããã¯ãMavenã䜿çšããŠHiberbnateãæ§ç¯ãã2.5幎以äžã®éã«ééããåé¡ããã©ã¹ãã¬ãŒã·ã§ã³ã«ã€ããŠäžçã«äŒããããã®åãªãæ¹æ³ã§ãã å€ãã®å Žåããã®çç±ã¯ãMavenã§äœ¿çšãããèŠåããHibernateã¢ã»ã³ããªãæ³åããæ¹æ³ãšäžèŽããªãããã§ãã Paulã«ãã£ãŠã³ã³ãã€ã«ããã
ãªã¹ãã®äžéšã®é
ç®ã¯ãHibernateã«ã®ã¿é¢é£ããŠããŸãïŒãã®ãªã¹ããäžèŠã®äŸ¡å€ããããŸãïŒã ããã¯ãç§ãä»ã®æ°ãããã«ãããŒã«ïŒãã«ããŒãSBTãªã©ïŒãããGradleã奜ãã çç±ã説æããæ¹æ³ã§ããããŸãã ãšããã§ãGradleãšMavenãæ¯èŒããwikiããããŸãããå€ãã®éšåã§ããªãæ代é
ãã§ãã ç¹ã«Gradleã§ã
以äžã¯ãMavenã§ééããåé¡ïŒãéèŠæ§ããããæç³»åé ïŒã§ãã
- Mavenã¯ãã«ãã¢ãžã¥ãŒã«ã¢ã»ã³ããªããµããŒãããŠããŸããã ãµããŒããããšäž»åŒµãããŠããŸãããããã¯å®å
šã«æ£ç¢ºã§ã¯ãããŸããã æ£ç¢ºã«ã¯ã ç¬ç«ãããããžã§ã¯ãã®ã°ã«ãŒãã®åŽé¢ããµããŒãããŸã ã éãã¯äœã§ããïŒ ããšãã°ãHibernateã䜿çšããŸãã çµã¿ç«ãŠãã¢ãžã¥ãŒã«ã®ã»ããããããŸãã ã¢ãžã¥ãŒã«ã¯ã䜿çšããæ©èœã«å¿ããŠäŸåé¢ä¿ãåé¢ããç®çã§ã®ã¿ååšããŸãã ãã£ãã·ã¥ã«ehcacheã䜿çšããŠããŸãããïŒ åé¡ãããŸãããhibernate-ehcacheã¢ãžã¥ãŒã«ã䜿çšããªãã§ãã ãããehcacheã¯äŸåé¢ä¿ã«ãããŸããã ãããã®ã¢ãžã¥ãŒã«ãåå¥ã«æäŸããããšã¯ãããŸããã 次ã«ããªããããžã§ã¯ãããŒãžã§ã³ãäœåºŠãïŒãã¹ãŠã®ã¢ãžã¥ãŒã«ã§ïŒèšå®ããå¿
èŠãããã®ã§ããïŒ mavenãåçŽãªãã®ãè€éã«ããæ¹æ³ã®äŸã次ã«ç€ºããŸãã ãããŠãçµæã¯ãäŸãã°ãç§ããªãªãŒã¹ãããããšãã«æããããŸãã ããŒãžã§ã³ãå€ãã®ç°ãªãå Žæã§äžèŽããããšãæåã§ç¢ºèªããå¿
èŠããããŸãïŒãªãªãŒã¹ãã©ã°ã€ã³ã«ã€ããŠãéå§ããªãã§ãã ããïŒ
- ããŠããªãªãŒã¹ãã©ã°ã€ã³ã«ã€ããŠå§ããã®ã§ã äžè¬ã«åœ¹ã«ç«ããªãã å°ããªãããžã§ã¯ãã§å€ããå°ãªããããŸãåäœãããããšãã§ããŸããããHibernateã䜿çšãããšã»ãšãã©åžžã«ãã¯ã©ãã·ã¥ãããŸããã ããã«æªãããšã«ãããªãã¯ãããããŸããããªãããšãèŠã€ããããã«30-40-60ååŸ
ã£ãŠããã圌ãæ°ã«å
¥ããªãã£ããã®ãä¿®æ£ããŠïŒããªãããªããšãèŠã€ãããªãïŒããããåã³å§ããªããã°ãªããŸããã æçµçã«ãç§ãã¡ã¯ãããããŸãã ã ïŒã¡ãªã¿ã«ãå人ã¯Jason van ZylããªãªãŒã¹ãã©ã°ã€ã³ãå°çã®ç¬¬7ãµãŒã¯ã«ã«ãã£ã¹ããããæ°ãããã®ãã«çœ®ãæããããããšã«æ°ä»ãããšããã§ãïŒ
- Hibernate-coreã¯äž»èŠãªææç©ã§ãã Hibernate-Annotationsã¯ããã«äŸåããŸãã Mavenã¯ããã«ã€ããŠç¥ã£ãŠããŸãã ããã§ã¯ããªãhibernate-annotationsãã£ã¬ã¯ããªã«ç§»åã㊠'maven compile'ãå®è¡ããŠhibernate-coreãèªåçã«ãã«ãã§ããªãã®ã¯ãªãã§ããïŒ ïŒãã³ãïŒãã€ã³ã1ãåç
§ïŒãããã®å Žåã§ãïŒ `cd hibernate-core; mvn install; cd ../hibernate-annotations; mvn compile`-ã¯ã²ãŒãã«ç»ããŸããã ãã«ãã€ã³ã¹ããŒã©ãŒã¯ãç§ãéåžžã«å€ãã®é害ãå
æãããããã®äŸåé¢ä¿ã®æ§è³ªã説æããåŸãèªåã§ãããç解ããå¿
èŠããããŸãã
- ãããžã§ã¯ãããšã«1ã€ã®ã¢ãŒãã£ãã¡ã¯ãã ããã¯è¯ãã«ãŒã«ã ãšæããŸãã ããããè¯ãã«ãŒã«ã絶察çãªçå®ã§ããããšã¯ãã£ãã«ãããŸããã ãŸããããšãã°ãMavenã®ãã®å¶éã«ãããhibernate-coreã®å€éšã§hibernate-coreã®ãã¹ããè¡ãå¿
èŠããããŸããã hibernate-coreã«äŸåãããã¹ãã®äžè¬çãªå®è¡æéãå®çŸ©ããä»ã®ã»ãšãã©ã®ã¢ãžã¥ãŒã«ã§äœ¿çšãããhibernate-testingãå¿
èŠã ã£ãããïŒãŠãŒã¶ãŒãå©çšã§ããããã«ãããã£ãããïŒã éçºè
ïŒèªåãå«ãïŒããã¹ããå®è¡ããã®ãå¿ããŠããã®ã¯ãä»ã®å®å
šã«ç¬ç«ããã¢ãžã¥ãŒã«ã«æšªããã£ãŠããããã§ãã ã¯ããããã¯äž»ã«çŽ°éšãžã®æ³šæã®åé¡ã§ãããã¢ã»ã³ããªããŒã«ã¯ãããã®åé¡ãäœæããã®ã§ã¯ãªã解決ããã®ã«åœ¹ç«ã€ã¹ãã§ã¯ãããŸãããïŒ ããŠããããžã§ã¯ãããšã«1ã€ã®ãœãŒã¹ãã£ã¬ã¯ããªãšã³ã³ãã€ã«ãããã¯ã©ã¹ã®1ã€ã®ãã£ã¬ã¯ããªã httpïŒ// in.relation.to / Bloggers / SimultaneouslySupportingJDBC3AndJDBC4WithMavenãåç
§ããŠãã ãã
- å人çã«ã¯ããç¶æ¿ãããPOMããŒã¿ããšãã¢ãžã¥ãŒã«éçŽãã1ã€ã®ãã¡ã€ã«ã«çµåãããšããæŠå¿µãå«ãã§ãã ããã¯ã²ã©ãèãã§ãã å€ãã®Mavenéçºè
ã¯ç§ã«åæããHibernateã./parent/pom.xmlã«ãç¶æ¿ãããpomããŒã¿ãããã/ pom.xmlã«ãã¢ãžã¥ãŒã«éçŽããæçš¿ããã¹ããŒã ã®éçºãæ¯æŽããŸããã çŽ æŽããããMavenã¯ããããµããŒãããŠããŸã...ãŸããã»ãšãã©åé¡ãããŸããïŒã»ãšãã©ãµããŒãããŠããŸãã åé¡ã¯ãå€ãã®ãã©ã°ã€ã³ãããããµããŒãããŠããããå°ããªãã£ãããŒãªåé¡ãå§ãŸãããšã§ãã ã§ã¯ããªããããéã¶ã®ã§ããããïŒ ç§ãèšã£ãããã«ãç§ã¯çµåãæ£ãããšã¯æããªãã ãããããªããæ£ãããèžã¿è¶ããŠãéãããæ¹ãããªãã®ãã Mavenã®åäœã¯ç°ãªããŸããïŒ åé¡ã¯ãåæãã§ãã¯ã¢ãŠãåŸã®èšå®ã«ãããŸãã 芪ãååšãããŸã§ã¢ãžã¥ãŒã«ãæ§ç¯ã§ããŸããã ãã ãã芪ãã¢ã°ãªã²ãŒã¿ãŒã®å Žåãã¢ãžã¥ãŒã«ããã«ãããå¯äžã®æ¹æ³ã¯ãããžã§ã¯ãå
šäœãã€ã³ã¹ããŒã«ããããšã§ãïŒãŸãã¯mavenã³ãã³ãã®ããŒãç¥ã£ãŠååž°ããªãã«ããŸãïŒ
- åœåã2.5幎åãç§ã¯DocBookã¢ã»ã³ããªã«çŽé¢ããªããã°ãªããŸããã§ããã ã¯ãªã¹ãã£ã³ã¯ãHibernateã§Antã䜿çšããŠDocBookãæ§ç¯ããããšã§ãå€ãã®ãªãŒãã³ãœãŒã¹Javaãããžã§ã¯ãã®åºæºãèšå®ããŸããã äŸåé¢ä¿ç®¡çã®æŠå¿µã䜿çšããŠå¿
èŠã«å¿ããŠå¿
èŠãªã³ã³ããŒãã³ããããŠã³ããŒããããããæ¹åããæ¹æ³ã«ã€ããŠèããŸããã åé¡ã¯ãMavenã§åæ§ã®ããšãè¡ãã«ã¯ããã©ã°ã€ã³ãäœæããå¿
èŠãããããšã§ãã ãã¹ã¯ãªãããæããã ãã§ããããæçšã§ããããšãå€æããããä»ã®äººã®ããã«ãããããã¯ããŸããïŒGMavenãªã©ã®å©ããåããã°ããçšåºŠå¯èœã«ãªã£ãããããã§ã¯ãªãã£ãïŒ ãã®ãããjDocBookãã©ã°ã€ã³ãªã©ãäœæããå¿
èŠããããŸããã ãããŠãããããã¹ãŠã«åé¡ããããŸããã Gradleã¯ãéçã®ç®ãããããã®ã§ãGradleãšMavenãçŽæ¥æ¯èŒããã®ã¯ããã ãã§ãã Gradleã§ãã©ã°ã€ã³ãäœæããïŒç§ã¯ãã§ã«2ã€ã®éåžžã«å€§ããªãã©ã°ã€ã³ãäœæããŸããïŒããšã¯ãšãŠãçŽ æŽãããããšã§ãã ããæå³ã§ã¯ããããæ£ããè¡ãæ¹æ³ã«é¢ããæ瀺ããªããããããã¯ç°¡åã§ã¯ãããŸããããæäŸãããAPIãšæ©èœã¯åçŽã§ãïŒMavenããæ£ãããã©ã°ã€ã³ãã«é¢ããããã¥ã¡ã³ããæã£ãŠããããã§ã¯ãããŸããïŒã
- å€ãã®ãŠãŒã¶ãŒã¯ãJBoss Mavenãªããžããªãšå¯Ÿè©±ããããã«ãã«ãã¹ã¯ãªãããèšå®ããããšãæãã§ããŸãã è«ççã§ãïŒã¢ã»ã³ããªã¯ãã®ãŸãŸäœ¿çšã§ããŸãã ãã ããMavenã§ã¯ãã¢ã»ã³ããªã«äœ¿çšãããpomãã¡ã€ã«ããªããžããªãžã®ã€ã³ã¹ããŒã«ã«äœ¿çšãããããããããè¡ãããšã¯ã§ããŸããã ãŸããã»ãšãã©ã®ãªããžããªïŒJBossããã³Maven Centralãå«ãïŒã¯ãpomãã¡ã€ã«ã«ãªããžããªèšå®ãå«ãŸããŠããªãããšã確èªããŸãã ãã®ãããã¹ã¯ãªãããèšå®ãã代ããã«ãwikiãšdocbookããµããŒããããŠãŒã¶ãŒãããã¥ã¡ã³ãã«éãå¿
èŠããããŸãã
- çµ±åã䜿çšããŠãå°ãªããšãIntelliJã§ã¯ãIDEãä»ããŠè€æ°ã®ããŒã¿ããŒã¹ã§Hibernateãã¹ããå®è¡ããããšã¯ã»ãšãã©äžå¯èœã§ãã åé¡ã¯ãããã¡ã€ã«ã«ãããçµ±åããããã¡ã€ã«ãšã©ã®ããã«çžäºäœçšãããïŒãªãœãŒã¹ã®ãã£ã«ã¿ãªã³ã°ã«é¢ããŠïŒ
ã ãããHibernateãæ§ç¯ããããã®ããè¯ãæ¹æ³ãæ¢ãå§ããæã§ãã ã¯ããMaven3ã¯å°å¹³ç·äžã«è¿«ã£ãŠããŸããã ã¯ãã圌ã¯ããã€ãã®ãã¹ã¯ãªãããµããŒãããè¿œå ããŸãããããã¯å°ããªããšã®ããã§ãã ç§ã®ç¥ãéããåãæ¹æ³ã§å¥ã®æ¹æ³ã§ã»ããã¢ããã§ããŸãã ããã§ãä»ã®ãDSLãæ
£ç¿ããšã«æ§ç¯ãããããŒã«ã®äžã§ãGradleãåŠã³å§ããŸããã ïŒã¡ãªã¿ã«ããã®ãå°ããªãã®ãã¯ããªã°ãããã¡ã€ãã³ãšåŒã°ããå人ã«ãããšããžã§ã€ãœã³ã»ãã¡ã³ã»ãžã«ã¯åé€ãããŠãä»ã®äœããã«çœ®ãæãããããšè¿°ã¹ãïŒã
- æåã®äž»ãªå©ç¹ã¯ããæ
£äŸã«ããæ§ç¯ãã®èŠ³ç¹ãã説æããã®ãé£ãããããããã¯ã®éšåã®ã¹ã¯ãªãããäœæã§ããããšã§ããã ç§ã¯ãã®æ··åç©ã奜ãã§ããïŒäž¡æ¹ã®äžçããã®æé«ã¯ããªãã®åŠåã§ãã
- ã¢ã»ã³ããªäžã«ä»ã®ã¢ãžã¥ãŒã«ã®æ
å ±ã«ã¢ã¯ã»ã¹ããã®ãå°é£ãªå Žå[Maven2ã䜿çš-çŽ transã]ãç§ã¯ãå€ãã®å Žåãã¯ããŒãžã£ãŒã䜿çšããŠã¢ã»ã³ããªã¢ãžã¥ãŒã«ã®åæãèšè¿°ããæ©èœã¯ãåã«ãç¥ã®èŽãç©ãã§ããããšã«æ°ä»ããŸããã ã¡ã€ã³gradleã¹ã¯ãªããã®ãã¹ãŠã®ãµããããžã§ã¯ãã®æšæºèšå®ãæ§æããæ¹æ³ãšåæ§ã«ãããã¯Mavenã®ç¶æ¿ã®æŠå¿µãã¯ããã«è¶
ããåäœã§ãã
- ãã«ãã·ã¹ãã ã®å¶éã«åŸãå¿
èŠãªãã«ãå¿
èŠã«å¿ããŠãã«ãèšå®ãšãã£ã¬ã¯ããªã®äžè¬çãªæè»æ§-ããã¯çŽ æŽããã
- Gradleã®ãã«ãããã»ã¹ã®å
šäœçãªæŠå¿µã¯ãã¯ããã«ç°¡æœã§ãã Gradleã§ã¯ãã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ãå®çŸ©ã§ããã ãã§ãªããã¿ã¹ã¯ãã¢ãžã¥ãŒã«ããã£ã¬ã¯ããªãªã©ã®äŸåé¢ä¿ãéåžžã«æè»ã«èšè¿°ããããšãã§ããŸãã ããšãã°ãGradleã§ã¯ã1ã€ã®ã¢ãžã¥ãŒã«ãå¥ã®ã¢ã»ã³ããªã®çµæïŒjarïŒã§ã¯ãªããã³ã³ãã€ã«ãããã¯ã©ã¹ã«äŸåããŠãããšæ¢ã«èšãããšãã§ããŸãã èããŠã¿ãŠãã ããã éåžžã«æè»ã§ãã ãããŠäŸ¿å©ïŒ
- åãããžã§ã¯ããŸãã¯ã¢ãžã¥ãŒã«ã«ã¯ãè€æ°ã®ããœãŒã¹ã»ããããå«ããããšãã§ããŸãã ããœãŒã¹ã»ãããã¯ããœãŒã¹ã³ãŒããã¿ãŒã²ãããã£ã¬ã¯ããªã®ã»ããããªãœãŒã¹ãã£ã¬ã¯ããªãªã©ãå«ããã£ã¬ã¯ããªã»ãããèšå®ããŸããããã«ãããããšãã°ãJDBC3 / JDBC4ã®äžŠåãµããŒããšãã¹ããåžæã©ããã«è¡ãããšãã§ããŸãïŒ in.relationãåç
§ïŒ .to /ããã¬ãŒ/ SimultaneouslySupportingJDBC3AndJDBC4WithMaven ïŒ
- äœã«èµ·å ããã®ãããããŸãããããã¢ã»ã³ããªã·ã¹ãã ã«ã¯ã©ã®ãããªãªãã·ã§ã³ããããŸããïŒãã§ã¯ãªãããã©ããã£ãŠãããè¡ãã®ã§ããïŒã
- å¢åã¢ã»ã³ããªã¯çŽ æŽãããã§ãã ã©ãïŒ åœŒå¥³ã¯ãäœããå€ãã£ããšããå€ãã£ãŠããªããšãããããŠã¢ã»ã³ããªã®éšåãå®éã«å¿
èŠãªãšããç解ããŠããŸãã ããã¯ãã©ã°ã€ã³ã«çµã¿èŸŒãŸããŠããŸãã ã¿ã¹ã¯ã¯å
¥åãšåºåã決å®ããGradleã¯ãã®æ
å ±ã䜿çšããŠã¿ã¹ã¯ãå®è¡ããå¿
èŠããããã©ããã決å®ããŸãã å
¥åãå€æŽãããã¿ã¹ã¯ãåºåãæŽæ°ãããã©ããããããã£ãŠãããã«äŸåããã¿ã¹ã¯ãå®è¡ããå¿
èŠããããŸãã ãã®çµæãåŸç¶ã®ãã«ãã¯éåžžã«é«éã«ãªããŸãã
- Mavenãªããžããªã«ã¢ãŒãã£ãã¡ã¯ããå
¬éããæ£ç¢ºãªPOMãçæããGradleã®æ©èœã¯ããŠããŒã¯ã§ããã ãã§ãªãã移è¡ã決å®ããããã®éèŠãªè°è«ã§ããããŸããã Mavenã䜿çšããŠHibernateãæ§ç¯ããããšã«èŠæ
ãèšããããããŸããããã¢ãŒãã£ãã¡ã¯ããçµ±äžãããæ¹æ³ã§äœæããã³äœ¿çšããæ©èœãéåžžã«å¿
èŠã§ãã äžè¬ã«ãGradleã¯ãæã£ãŠããæ
å ±ããPOMãçæã§ããŸãã ããã§ãªãå Žåã¯ãã¯ããŒãžã£ãŒã«è¿œå ã®ãã©ã¡ãŒã¿ãŒãèšè¿°ããã ãã§POMãæ§æã§ããŸãã ããã¯æè»æ§ã«é¢ãããã®ã§ãã
- IDEãããžã§ã¯ãã®çæã ããã¯å¥ã®éèŠãªè°è«ã§ããã ã»ãšãã©ã®Hibernateéçºè
ã¯EclipseãŸãã¯IntelliJã䜿çšããŸãã å人çã«ãç§ã¯IDEã§ã»ãšãã©ã®æéãè²»ãããŠããŸããã³ãŒããèšè¿°ãããã¹ããå®è¡ããããã¥ã¡ã³ããäœæããŸãã IDEã®äœæ¥ãè€éã«ããããšã¯ããŸããã§ããã ããªãé·ãéãGradleã¯Eclipseã§ãããžã§ã¯ããäœæã§ããŸãã æè¿ãIntelliJã§ãããžã§ã¯ããçæã§ããããã«ãªããŸããã 圌女ã®ããã«ã圌ãã¯èšããmavenã«äŒŒãgradleçµ±åãéçºãããŠãã