±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË×÷Õß»ýÀÛµÄһЩ¸´ÔÓÒÀÀµÓÐЧÖÎÀíµÄ¾Ñ飬³ýÁ˼òµ¥¼¼Êõ¼¼ÇɵÄ×ܽáÍ⣬Ҳ̽ÌÖÁËһЩ¹ØÓÚÕâ·½Ãæ¼Ü¹¹µÄ˼¿¼£¬Ï£Íû´ËÎÄÄÜϵͳ³¹µ×µÄ½â¾öjavaÒÀÀµ³åÍ»¶Ô´ó¼ÒµÄÀ§ÈÅ¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖںŰ¢Àï¼¼Êõ£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
Ò» ¸ÅÊö
ÓÉÓÚ°¢ÀïÂèÂèÁªÃËÍŶӸºÔðÒµÎñµÄÌØÊâÐÔ£¬ÏµÍ³ÓÐÅÓ´óµÄ¶ÔÍâÒÀÀµ£¬ÒÀÀµ¼¯ÍÅÁùÆßÊ®¸öÍŶӷþÎñ¼°N¶à¹¤¾ß×é¼þ£¬Í¨¹ý´ËÎĺʹó¼Ò·ÖÏíÒ»ÏÂÎÒÃÇ»ýÀÛµÄһЩ¸´ÔÓÒÀÀµÓÐЧÖÎÀíµÄ¾Ñ飬³ýÁ˼òµ¥¼¼Êõ¼¼ÇɵÄ×ܽáÍ⣬Ҳ»á̽ÌÖһЩ¹ØÓÚÕâ·½Ãæ¼Ü¹¹µÄ˼¿¼£¬Ï£Íû´ËÎÄÄÜϵͳ³¹µ×µÄ½â¾öjavaÒÀÀµ³åÍ»¶Ô´ó¼ÒµÄÀ§ÈÅ¡£
¶þ ÒÀÀµ³åÍ»²úÉúµÄ±¾ÖÊÔÒò
Òª½â¾öÒÀÀµ³åÍ»£¬Ê×ÏÈÒªÀí½âÒ»ÏÂjavaÒÀÀµ³åÍ»²úÉúµÄ±¾ÖÊÔÒò¡£

ͼ1
ÒÔÉÏͼΪÀý£¬Ä¿Ç°°¢Àï´ó²¿·Öjava¹¤³Ì¶¼ÊÇmaven¹¤³Ì£¬´ËÀ๤³Ì´Ó¿ª·¢µ½ÉÏÏßÒª¾ÀúÒÔÏÂÁ½¸öÖØÒª²½Ö裺
1 ±àÒë´ò°ü
ƽʱÎÒÃDZàдµÄÓ¦ÓôúÂ룬ÓÃmaven±àÒëÓ¦ÓôúÂëʱ£¬mavenÖ»ÒÀÀµµÚÒ»¼¶jar°ü(A.jar£¬B.jar£¬*.jar)¼ÈÍê³ÉÓ¦ÓôúÂëµÄ±àÒ룬ÖÁÓÚ´«µÝÒÀÀµµÄjar°ü(Y.jar£¬Z.jar)mavenÊ×ÏÈ»á¶ÔͬÃû²»Í¬versionµÄjar°ü½øÐÐÒÀÀµÖٲã¬È»ºóÒÀ¾ÝÖٲýá¹ûÏÂÔØ¶ÔÓ¦µÄjar·Åµ½Ö¸¶¨Ä¿Â¼ÏÂ(ÀýÈçÉÏͼÖÐY.jar×îÖÕÖ»»áÖÙ²Ã1.0»ò2.0Ò»¸ö°æ±¾£¬´Ë´¦¼Ù¶¨Öٲõ½2.0°æ±¾£¬Z.jar¼´±ãÄÚÈÝÓëY.jarÒ»Ö£¬µ«Ãû³Æ²»Ò»ÑùËùÒÔ²»ÊôÓÚmavenÖٲ÷¶³ë)¡£
ÓÐÒ»µãÐè×¢Òⲻͬmaven°æ±¾¿ÉÄÜ»áÓвîÒ죬Õâ»áµ¼ÖÂÓÐʱ±¾µØ»·¾³ºÍÈÕ³£¡¢Ô¤·¢´ò°ü²»Ò»ÖÂÔì³ÉÓ¦ÓÃÂß¼±íÏÖ²»Ò»ÖµÄÇé¿ö£¨ËµÃ÷Ò»ÏÂÕâÖÖÇé¿ö»¹ÓÐÆäËûһЩÔÒò»áµ¼Ö£¬²»ÊÇ˵һ¶¨ÊÇmaven°æ±¾²»Ò»ÖÂÖٲýá¹û²»Ò»Öµ¼Öµģ©¡£
2 ·¢²¼ÉÏÏß
ÏÈÃ÷È·Ò»¸ö¸ÅÄÔÚJVMÖУ¬Ò»¸öÀàÐÍʵÀýÊÇͨ¹ýËüµÄÈ«ÀàÃûºÍ¼ÓÔØËüµÄÀà¼ÓÔØÆ÷£¨ClassLoader£©ÊµÀýÀ´Î¨Ò»È·¶¨µÄ¡£ËùÒÔËùνµÄ¡°Àà¸ôÀ롱£¬Êµ¼Ê¾ÍÊÇͨ¹ý²»Í¬µÄÀà¼ÓÔØÆ÷ʵÀýÈ¥¼ÓÔØÐèÒª¸ôÀëµÄÀàÀ´ÊµÏֵģ¬ÕâÑù¼´±ãÁ½¸öÈ«ÀàÃûÍêÈ«Ïàͬµ«ÄÚÈݲ»Í¬µÄÀֻ࣬ҪËûÃǵÄÀà¼ÓÔØÆ÷ʵÀý²»Í¬£¬¾ÍÄÜÔÚÒ»¸öÈÝÆ÷½ø³ÌÖй²´æ£¬²¢ÇÒ¸÷×ÔÔËÐл¥²»¸ÉÈÅ¡£
·¢²¼Æô¶¯ÈÝÆ÷ʱ£¬²»¹ÜÊÇtomcat¡¢taobao-tomcat»¹ÊÇPandoraBoot£¬»¹ÊÇÆäËûÈÝÆ÷£¬
Ê×Ïȶ¼ÊÇÓÃÌØ¶¨µÄÀà¼ÓÔØÆ÷ʵÀýÏȼÓÔØÈÝÆ÷±¾ÉíÒÀÀµµÄjar°ü£¬ÈÝÆ÷Ò»°ã¶¼»áÓжà¸öÀà¼ÓÔØÆ÷ʵÀý£¬ÈÝÆ÷×ÔÉíËùÒÀÀµµÄjar°üÒ»°ãÓÉרÃŵÄÀà¼ÓÔØÆ÷ʵÀý¼ÓÔØÊµÏÖÓëÓ¦ÓðüµÄ¾ø¶Ô¸ôÀ룬ÏñPandroa»¹ÓÐרÃŵÄÀà¼ÓÔØÆ÷ʵÀý¼ÓÔØÌÔϵÖмä¼þ±ÜÃâÖмä¼þÓëÓ¦ÓÃÀà³åÍ»£¬ÈçÏÂͼËùʾ£º

ÈÝÆ÷ÄÚ²¿ÒÀÀµjar¼ÓÔØÍê³Éºó£¬²ÅÂÖµ½±ØÈ»µÄÒ»²½£ºÓÉij¸öÓ¦ÓÃClassLoaderʵÀý(Ò»°ãÓëÈÝÆ÷Àà¼ÓÔØÆ÷ʵÀý²»ÊÇÒ»¸ö)À´¼ÓÔØ±àÒë´ò°ü½×¶Î´ò³öÀ´µÄÓ¦ÓÃjar°ü¼°Ó¦ÓÃ.class³ÌÐò£¬ÕâÑùÈÝÆ÷²ÅÄÜÔËÐÐÒµÎñ£¬Í¬Ê±È·±£Ó¦Óò»»á¸ÉÈÅÈÝÆ÷µÄÔËÐС£
ÀýÈçͼ1ÖУ¬×îÖÕ´ò³öµÄÓ¦ÓðüÖÐY.jar-2.0£¬Z.jar¶¼ÓÐcom.taobao.Cc.classÀ࣬µ«Ò»¸öÓ¦ÓÃClassLoaderʵÀý½öÄܼÓÔØV3»òV2ÖÐÒ»¸ö°æ±¾µÄcom.taobao.Cc.classÀà¡£
Äǵ½µ×»á¼ÓÔØÄĸö°æ±¾µÄcom.taobao.Cc.classÀàÄØ£¿´ð°¸ÊDz»Ò»¶¨£¬Õâ¸öÈ¡¾öÓÚÈÝÆ÷Ó¦ÓÃÀà¼ÓÔØÊµÏÖ²ßÂÔ£¬
´ÓÒÔÍùÓöµ½µÄÇé¿ö¿´£¬tomcat£¬taobao-tomcat¡¢PandoraµÄ×ö·¨¶¼ÊÇÖ±½Ó×°ÔØÓ¦ÓÃlib°üÏÂËùÓÐ.jar°üÎļþÁбí(ÉÏÀýÊÇA.jar,B.jar,*.jar,Y.jar,Z.jar¡£³ýtomcatÍⶼû¿´Ô´ÂëºËʵ¹ý£¬ÓÐ´í»¶Ó¾ÀÕý)¡£µ«Java
ÔÚ×°ÔØÒ»¸öĿ¼ÏÂËùÓÐjar°üʱ£¬ Ëü¼ÓÔØµÄ˳ÐòÍêȫȡ¾öÓÚ²Ù×÷ϵͳ£¡¶øLinuxµÄ˳ÐòÍêȫȡ¾öÓÚINodeµÄ˳Ðò£¬INodeµÄ˳Ðò²»ÍêÈ«ÄÜÒ»Ö£¬ËùÒÔ±ÊÕß֮ǰ¾ÍÓöµ½ÀàËÆµÄÎÊÌ⣬ÉÏÏß20̨»úÆ÷£¬ÓÃͬһ¸ö¾µÏñ£¬ÓÐ2̨¾ÍÊÇÆð²»À´µÄÇé¿ö¡£Óöµ½ÕâÖÖÇé¿öĿǰ¾ÍÖ»ÄܹԹ԰´ÒÔÏÂÕ½ÚÖеÄÊÖ¶ÎÈ¥½â¾öÁË¡£ÀíÂÛÉÏ×îÕýÈ·µÄ×ö·¨Ó¦¸ÃÊÇÈÝÆ÷×°ÔØÓ¦ÓÃ
jar°üʱ£¬°´Ö¸¶¨Ë³Ðò¼ÓÔØ¡£
»ùÓÚÒÔÉÏ·ÖÎö£¬ÎÒÃÇ¿ÉÒԵóö½áÂÛ£¬»ù±¾ËùÓеÄÀà³åÍ»²úÉúµÄ±¾ÖÊÔÒò£ºÒªÃ´ÊÇÒòΪmavenÒÀÀµÖÙ²Ãjar°ü²»Âú×ãÔËÐÐʱÐèÒª£¬ÒªÃ´ÊÇÈÝÆ÷Àà¼ÓÔØ¹ý³ÌÖмÓÔØµÄÀ಻Âú×ãÔËÐÐʱÐèÒªµ¼Öµġ£
¹ØÓÚÈÝÆ÷Àà¼ÓÔØ¸ôÀë²ßÂÔ£¬ÍøÉÏATAÉÏÓкܶà×ÊÁϽéÉÜ£¬±¾ÎÄÖØµãÏò´ó¼Ò½²½âÓöµ½³åÍ»µÄ¸÷ÖÖ½â¾öÖ®µÀ£¬½â¾ö³åÍ»´ó¼ÒÖ»ÐèÒªÖªµÀÒÔÉÏÖØµãÔÀí¾Í¹»ÁË¡£
Àí½âÁËÒÀÀµ³åÍ»²úÉúµÄ±¾ÖÊÔÒò£¬ÄÇô·¢ÉúÒÀÀµ³åÍ»ÈçºÎ¸ßЧ¶¨Î»¾ßÌåÊÇÄÄЩjar°üÒýÆðµÄ³åÍ»ÄØ£¿Çë¼ÌÐø¿´ÏÂÒ»Õ½ڡ£
Èý ÒÀÀµ³åÍ»ÎÊÌâ¸ßЧ¶¨Î»¼¼ÇÉ
·¢ÉúÒÀÀµ³åÍ»Ö÷Òª±íÏÖΪϵͳÆô¶¯»òÔËÐÐÖлᷢÉúÒì³££¬99%±íÏÖΪÈýÖÖNoClassDefFoundError¡¢ClassNotFoundException¡¢NoSuchMethodError¡£ÏÂÃæÖðÒ»½²½âһ϶¨Î»¼¼ÇÉ¡£
1 NoClassDefFoundError¡¢ClassNotFoundExceptionÅŲ鶨λ²½Öè
STEP1¡¢·¢ÉúNoClassDefFoundErrorÊ×ÏÈÒª¿´ÍêÕûÒì³£Õ»£¬È·ÈÏÊÇ·ñÊǾ²Ì¬´úÂë¿é·¢ÉúÒì³££¬¾²Ì¬´úÂë¿é·¢ÉúÒì³£¶ÑÕ»Óëjar°ü³åÍ»ÓкÜÃ÷ÏÔµÄÇø±ð£¬³öÏÖ"Could
not initialize"¡¢"Caused by: ..."¹Ø¼ü×ÖÒ»°ãÊǾ²Ì¬´úÂë¿é·¢ÉúÒì³£µ¼ÖÂÀà¼ÓÔØÊ§°Ü:
java.lang.NoClassDefFoundError:
Could not initialize class testing.User
at testing.Test.main(Test.java:23)
Caused by: java.lang.RuntimeException: UserId
Not found
at testing.User.getUserId(Test.java:41)
at testing.User.<clinit>(Test.java:35)
... 1 more |
ÒòΪ¾²Ì¬´úÂë¿é·¢ÉúÒì³£µ¼ÖÂNoClassDefFoundError£¬Ð޸ľ²Ì¬´úÂë¿é±ÜÃâÅ׳öÒì³£¼´¿É¡£Èç¹û²»ÊǾ²Ì¬´úÂë¿é·¢ÉúÒì³£µ¼ÖµÄÎÊÌ⣬¼ÌÐøÏÂÒ»²½¡£
STEP2¡¢Èç¹û²»ÊǾ²Ì¬´úÂë¿é·¢ÉúÒì³£µ¼Ö¼ÓÔØÊ§°Ü£¬Òì³£message¹Ø¼ü×ÖÖлáÃ÷È·ÏÔʾȱʧµÄÀàÃû³Æ£¬ÀýÈ磺
java.lang.NoClassDefFoundError:
org/apache/commons/lang/CharUtils
at testing.Test.main(Test.java:19) |
STEP3¡¢ÔÚIDEAÖÐ(¿ì½Ý¼üCtrl+N)²éÕÒÒì³£Õ»ÖÐÌáʾȱʧµÄÀàÔÚÄÄЩ°æ±¾µÄjar°üÖÐÓУ¬ÈçÉÏÀýÖеÄorg.apache.commons.lang.CharUtils

STEP4¡¢²é¿´Ó¦Óò¿Êð»úÆ÷ÉÏÓ¦ÓÃlib°üĿ¼ÏÂ(Ò»°ãÊÇ/home/admin/union-uc/target/${projectName}/lib»òunion-pub/target/${projectName}.war/WEB-INF/lib)ÊÇ·ñ´æÔÚÉÏÒ»²½ÖèÖвé³ö¶ÔÓ¦°æ±¾µÄjar°ü£¬ÒÔÉÏÇé¿öÒ»°ãÊÇÒòΪ´ËʱӦÓÃÒÀÀµµÄÊǵͰ汾jar°ü£¬¶øjar°üÖÐÓÖûÓгåÍ»µÄÀ࣬¾ø´ó²¿·ÖÇé¿öÏÂNoClassDefFoundError¡¢ClassNotFoundException¶¨Î»È·È϶¼ÊÇÒòΪmavenÒÀÀµÖÙ²Ã×îÖÕ²ÉÄɵÄjar°ü°æ±¾ÓëÔËÐÐʱÐèÒªµÄ²»Ò»Öµ¼Ö¡£
2 NoSuchMethodErrorÅŲ鵽λ²½Öè
STEP1¡¢·¢ÉúNoSuchMethodError£¬Òì³£¶ÑÕ»ÈÕÖ¾ºËÐÄÆ¬¶Î(Òì³£Õ»Öд¦ÓÚÕ»µ×µÄƬ¶Î£¬¼û¹ýºÜ¶àͬѧ·¢ÉúÒì³£Âҷһͨ£¬ÄÇÑùºÁÎÞÒâÒ壬ҪÓÐÄ¿µÄµÄ·¹Ø¼üµØ·½£¬²»ÒªÂÒ·)»áÃ÷È·ÏÔʾ¾ßÌåÊÇÄĸöÀ࣬ȱʧÁËÄĸö·½·¨£¬Òì³£¶ÑÕ»ºËÐÄÆ¬¶ÎʾÀýÈçÏ£º
Caused by: java.lang.NoSuchMethodError:
org.springframework.beans.factory.support.DefaultListableBeanFactory.getDependencyComparator()Ljava/util/Comparator;
at org.springframework.context.annotation.AnnotationConfigUtils.registerAnnotationConfigProcessors(AnnotationConfigUtils.java:190)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.registerComponents(ComponentScanBeanDefinitionParser.java:150)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:86)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) |
Ê×ÏÈÐèÈ·ÈÏJVMÖе±Ç°¼ÓÔØµÄȱʧ·½·¨À࣬ÈçÉÏ"org.springframework.beans.factory.support.DefaultListableBeanFactory"Àൽµ×À´×ÔÄĸöjar°ü£¬Ä¿Ç°×î¸ßЧµÄ°ì·¨£º
Íⲿ»·¾³ÈÝÆ÷Ï£¬»òÕßijЩÈÝÆ÷°æ±¾¹ýµÍ²»Ö§³ÖArthasÔÚÏßÕï¶ÏµÄÇé¿öÏ£¬¿ÉÒÔͨ¹ýÔÚJVMÆô¶¯²ÎÊýÖÐÔö¼Ó"
-XX:+TraceClassLoading"£¬È»ºóÖØÐÂÆô¶¯ÏµÍ³£¬ÔÚϵͳ¹¤³ÌÈÕÖ¾Öм´¿É¿´µ½JVM¼ÓÔØÀàµÄÐÅÏ¢¡£´ÓÖм´¿ÉÕÒµ½JVMÊÇ´ÓÄĸöjar°üÖмÓÔØµÄ¡£
STEP2¡¢ÔÚIDEAÖÐ(¿ì½Ý¼üCtrl+N)²éÕÒÒì³£Õ»ÖÐÌáʾȱʧµÄÀàÔÚÄÄЩ°æ±¾µÄjar°üÖÐÓУ¬ÈçÏÂͼËùʾ£º

È»ºóÒÀ´Î²é¿´¸÷°æ±¾jar°üÖгåÍ»ÀàµÄÔ´Â룬¹¤³ÌÖв¿·Öjar´ò°üʱ¸½´øÁËÔ´Âë°ü¿ÉÖ±½Ó¿´µ½Ô´Â룬²»´øÔ´ÂëµÄÐèÒªÓÃIDEA²å¼þ(ÍÆ¼öjad)·´±àÒëһϡ£È»ºóÒÀ´ÎËÑѰ¸÷¸öjar°üÖеijåÍ»À࣬ËÑѰµÚÒ»²½Êǵã»÷ÉÏͼÖÐij¸ö°æ±¾À࣬ÔÚIDEAÖвéÕÒÀ༶´Î¹ØÏµ(¿ì½Ý¼üCtrl+H)£¬ÈçÏÂͼËùʾ£º

È»ºóÔÚ³åÍ»À༰ËùÓгåÍ»ÀàµÄ¸¸ÀàÔ´ÂëÖÐÕÒµ½NoSuchMethodErrorÒì³£ÐÅÏ¢ÖÐÃèÊöȱʧµÄ·½·¨£¬ÒÔÉÏÀý×ÓÖоÍÊÇ"getDependencyComparator()Ljava/util/Comparator"¡£
ÉÏÀýÖÐͨ¹ýËÑѰ¿ÉÒÔ·¢ÏÖspring-beans-3.2.1.RELEASE.jar£¬spring-2.5.6.SEC03.jarÁ½¸ö°æ±¾DefaultListableBeanFactoryÀ༰¸¸ÀàÖÐûÓÐ"getDependencyComparator()Ljava/util/Comparator"·½·¨£¬spring-beans-4.2.4.RELEASE.jar£¬spring-beans-4.3.5.RELEASE.jarÁ½¸ö°æ±¾DefaultListableBeanFactoryÀàÖÐÓÐȱʧµÄ"getDependencyComparator()Ljava/util/Comparator"·½·¨¡£
STEP3¡¢²é¿´Ó¦Óò¿Êð»úÆ÷ÉÏÓ¦ÓÃlib°üĿ¼ÏÂ(Ò»°ãÊÇ/home/admin/union-uc/target/${projectName}/lib»òunion-pub/target/${projectName}.war/WEB-INF/lib)Ï£¬ÕÒµ½Ïà¹Øjar°üµÄ°æ±¾£¬ÈçÉÏÀýÖУº

Ö´˶¨Î»ÎÊÌâ¸ù±¾ÔÒòÊÇÓ¦ÓÃÆô¶¯Ê±¼ÓÔØ"org.springframework.beans.factory.support.DefaultListableBeanFactory"Ààδ¼ÓÔØµ½ÔËÐÐʱԤÆÚËùÐèµÄspring-beans-4.3.5.RELEASE.jar°æ±¾£¬¶øÊǼÓÔØÁËspring-2.5.6.SEC03.jarµ¼Ö¡£
°´ÕÕÒÔÉÏÁ÷³Ì²½Ö裬»ù±¾99%µÄÒÀÀµ³åÍ»¶¼¿ÉÒÔ¶¨Î»µ½¸ù±¾ÔÒò¡£¶¨Î»µ½ÔÒòºóÈçºÎ½â¾ö³åÍ»ÄØ£¿ÊÂʵÉÏÓÐЩʱºò½â¾ö³åͻԶûÓÐÄÚÍøÉϺܶàÌû×ÓÃèÊöµÄ"mvn
dependency:tree"һϣ¬ÅÅÅÅjarÄÇô¼òµ¥¡£¾ßÌåϸ½ÚÇë¼ÌÐø¿´ÏÂÒ»Õ½ڡ£
ËÄ Í¨¹ýmavenµ÷ÕûÒÀÀµjar½â¾öÒÀÀµ³åÍ»
1 Éý½µ¼¶jar°ü½â¾öÒÀÀµ³åÍ»
ÉÏÒ»Õ½ÚÖеĵÚÒ»¸öÀý×ÓÖУ¬×î¼òµ¥µÄÇé¿ö£¬Èç¹û·¢Éú³åÍ»µÄjar°ü¸ß°æ±¾ÊÇÍêÈ«¼æÈݵͰ汾¹¦ÄܵÄÇé¿öÏ£¬Ö»ÐèÔÚpomÖмòµ¥Éý¼¶jar°ü°æ±¾¼´¿É¡£
µ«Èç¹û³åÍ» jar°ü¸ß°æ±¾²»¼æÈݵͰ汾£¬ÇÒÓ¦ÓÃÒÀÀµ²»ÊǺܸ´ÔÓµÄÇé¿öÏ£¬¿ÉÒÔ·ÖÎöÉý¼¶³åÍ»jar°üºó»á¶ÔÄÄЩҵÎñÓÐÓ°Ï죬¾ßÌå×ö·¨ÍƼöͨ¹ýIDEA
Maven Helper ²å¼þ²éÕÒ³åÍ»jar°üÓÐÄÄЩҵÎñÒÀÀµ£¨´Ë´¦²»ÍƼö"mvn dependency:tree"£¬Ä¿Ç°±¾È˼û¹ýµÄ´ó²¿·ÖMaven¹¤³Ì¶¼Óжà¸öModule£¬±ÈÈç*-dal,*-Service,*-Controller£¬ÕâÀ๤³Ì½á¹¹Èç¹ûmoduleδµ¥¶À´ò°üÉÏ´«Maven²Ö¿â£¬"mvn
dependency:tree"ÊDz»ÄÜÍêÕû·ÖÎöÒÀÀµ¹ØÏµµÄ£©£¬¼Ç¼ÏÂÀ´¡£ÈçÏÂͼËùʾ£º

È»ºóÉý¼¶³åÍ»°ü£¬Í¨¹ý»Ø¹é²âÊÔÊܵ½Ó°ÏìµÄ¶þ·½¿â¶ÔÓ¦µÄÒµÎñµã¡£
Èç¹ûÓ¦ÓÃÒÀÀµ·Ç³£¸´ÔÓ(ÀýÈç³åÍ»°üÓм¸Ê®¸ö¶þ·½¿âÒÀÀµ£¬»òÕßÒÀÀµ³åÍ»°üµÄ¶þ·½¿âÊǸö»ù´¡°ü£¬ÒµÎñϵͳÖÐÎÞ·¨ÇåÎúö¾Ù³öʹÓÃÊÜÓ°Ïì¶þ·½¿âµÄÒµÎñµã)£¬ÕâÖÖÇé¿öÏ£¬Èç¹ûҪͨ¹ýÉý¼¶jar°ü½â¾öÒÀÀµ³åÍ»£¬±ØÐëÍêÕû»Ø¹éÕû¸öÓ¦Óù¦ÄÜ¡£±ÊÕßÓм¸´ÎÒòΪ»Ø¹é²»È«ÃæÒý·¢¹ÊÕϵIJÒÍ´¾Àú£¬Ï£Íû´ó¼Ò²»ÒªÖص¸¸²ÕÞ¡£Í¨¹ýÕ⼸´ÎÊÂÀý£¬±ÊÕßÉî¿ÌÀí½âµ½ÎÒÃÇÕâ¸öʱ´ú×îΰ´óµÄ¼ÆËã»ú¿ÆÑ§¼ÒDijkstra´óÉñ¡°¼òµ¥Êǿɿ¿µÄÏȾöÌõ¼þ¡±Õâ¾äÖÁÀíÃûÑÔ£¬ÉîÉîµÄÌå»áµ½Èç¹ûÒ»¸öϵͳ¸´ÔÓµ½ÄãÍêÈ«ÎÞ·¨ÀíÇå³þËû´í×Û¸´ÔÓµÄÒÀÀµ¹ØÏµµÄʱºò£¬ÄÇ˵Ã÷Äã¸ÃÖØ¹¹ÄãµÄϵͳÁË£¬·ñÔòϵͳά»¤½«»áÖð²½±ä³ÉجÃΡ£
µ±È»²»ÊÇËùÓÐÇé¿ö¶¼¿ÉÒÔͨ¹ýÉý½µ¼¶jar½â¾ö³åÍ»£¬¾Ù¸öÀý×Ó£º

ÈçÉÏͼ¼ÙÉèÓ¦ÓÃϵͳͬʱÒÀÀµA.jar£¬B.jar£¬¶øA.jar£¬B.jar¶¼ÒÀÀµprotobuf-java£¬ÏµÍ³ÔËÐÐʱ¶¼»á·Ö±ðÓõ½A.jar£¬B.jarÖÐprotobuf²¿·ÖµÄ¹¦ÄÜ£¬¶øÇÒA.jar£¬B.jarÒÀÀµµÄprotobuf°æ±¾ÎÞ·¨Í¨¹ýÉý¸ß½µµÍ°æ±¾µ÷Õûµ½Ò»Ö¡£ÓÉÓÚprotobuf-java3.0°æ±¾ÐòÁл¯ÐÒ飬ÀàÄÚÈݸ÷·½Ãæ¶¼²»¼æÈÝprotobuf-java2.0°æ±¾¡£ÕâÖÖÇé¿öÎÞÂÛÈçºÎµ÷ÕûÒÀÀµ¶¼ÎÞ·¨½â¾ö³åÍ»µÄÎÊÌ⣬Ҫ½â¾öÕâÖÖ³åÍ»£¬Çë¼ÌÐøÍùÏ¿´£¬µÚÎåµÚÁùÕÂÄÚÈÝ¡£
2 Åųýjar°ü½â¾öÒÀÀµ³åÍ»
ÉÏÒ»Õ½ÚÖеڶþ¸öÀý×Ó£¬Ö÷ÒªÔÒòÊÇÈÝÆ÷Æô¶¯Ê±¼ÓÔØµ½µÄÀ಻ÊÇÔ¤ÆÚspring-beans-4.3.5.RELEASE.jarÖеÄÀ࣬¶øÊÇspring-2.5.6.SEC03.jar°üÖеÄÀ࣬Èç¹ûspring-2.5.6.SEC03.jarÅųý¶ÔÒµÎñÎÞÓ°Ï죬¿ÉÒÔͨ¹ýÅųýspring-2.5.6.SEC03.jarÀ´½â¾ö³åÍ»¡£ÓëÉÏÒ»½ÚÀý×ÓÀàËÆ£¬¿ÉÒÔͨ¹ýIDEA
Maven Helper ²å¼þÈ·¶¨spring-2.5.6.SEC03.jarÊÇÓÉÄĸöjar¼ä½ÓÒÀÀµ½øÀ´µÄ£¬ÅжÏÒµÎñµÄÓ°Ï췶Χ£¬´Ë´¦²»ÔÚ׸Êö¡£ÓëÉÏÒ»½ÚÒ»Ñù£¬ÀàËÆµÄÇé¿ö²»Ò»¶¨¶¼¿ÉÒÔÓÃÅųýjar½â¾ö¡£
Îå ͨ¹ýpandora×Ô¶¨Òå²å¼þ½â¾öÒÀÀµ³åÍ»
µÚËÄÕÂÖÐÓн²µ½£¬Èç¹ûÒ»¸öÓ¦ÓÃÖÐҪͬʱÔËÐÐÁ½¸ö²»¼æÈݰ汾µÄjar°ü£¬ÊÇÎÞ·¨Í¨¹ýMavenµ÷ÕûÒÀÀµ¹ØÏµ½â¾öµÄ¡£µÚ¶þÕ½²½âÒÀÀµ³åÍ»ÔÀíʱÓÐÌáµ½£¬Pandoraͨ¹ýÀà¸ôÀë»úÖÆÊµÏÖÁ˼¯ÍŸ÷¸öÖмä¼þÖ®¼äµÄ¸ôÀ룬PandroaͬʱҲ֧³ÖÒµÎñ·½°´¹æ·¶´´½¨Ò»¸ö¿ÉÒÔÔËÐÐÔÚPandoraÈÝÆ÷ÖеIJå¼þ£¬ÈÝÆ÷°ïÒµÎñ·½ÊµÏÖ¼ÓÔØ¸ôÀë¡£
ÁªÃËÒ»ÌÔÍŶӾͽ«ÀàËÆIC¡¢¿¨È¯ÕâÖÖºËÎäÆ÷¼¶´æÔڵĶþ·½°ü¸ù¾Ý×Ô¼ºÒµÎñµÄÐèÒª½øÐвüô°ü×°ºó£¬ÖÆ×÷³ÉPandora²å¼þÀ´±ÜÃâÒÀÀµ³åÍ»£¬È¡µÃÁ˺ܺõÄЧ¹û¡£
ÓÃPandora²å¼þȷʵÄÜÔÚ²»¶ÔÓ¦ÓÃ×öºÜ´óµ÷Õû£¬²»Ó°ÏìÐÔÄܵÄÇé¿öÏÂÍêÃÀ½â¾öÒÀÀµ³åÍ»ÎÊÌâ¡£
µ«Ò²ÓÐһЩÎÊÌâ¾Í²»Ì«ÊʺÏÓþֲ¿·½·¨½â¾öÁË£¬±ÈÈ磺
µ±Î¬»¤µÄÓ¦ÓÃÒÀÀµ¹ýÓÚ¸´ÔÓ£¬Ã¿¸öÓ¦ÓÃÒÀÀµÍⲿÈýËÄÊ®¸ö¶þ·½¿âʱ¡£ÕâÖÖÖØÁ¿¼¶Ó¦ÓþͻáÑÏÖØÓ°ÏìÉú²úЧÂÊ¡£

ÈçÉÏͼËùʾ£¬ÔçÆÚ±¾È˸ºÔðÁªÃËÓû§Æ½Ì¨Ê±£¬¾ÍÓöµ½Á½¸ö¾ÞÎÞ°ÔÓ¦Óã¬adv(6w+´úÂë)¡¢pub(12w+´úÂë)¡£
Ò»·½ÃæÒòΪÒÀÀµ¶à£¬»ù±¾Ã¿Öܶ¼»áÓöµ½¼¯ÍŸ÷ÖÖÉý¼¶£¬°²È«ÎÊÌ⣬¸÷ÖÖСÐÞС²¹£¬²»¶ÏµÄÉÏÏß¡£Ò»·½ÃæÒµÎñ·¢²¼ÐèÇóÒ²½Ï¶à¡£
µ¼ÖÂÐèҪƵ·±·¢²¼£¬±ÈÈçÓÐÒ»Äê¸öÈ˾ͷ¢²¼ÁË566´Î¡£´ËʱÅÓ´óµÄÒÀÀµµ¼Ö²¿ÊðЧÂÊ£¬Ó°ÏìÆÀ¹À»Ø¹é¶¼»áºÜÄÑ£¬´Ëʱ¾Í²»Ó¦¸Ã´Ó¾Ö²¿½â¾ö³åÍ»ÕâÖÖÊÓ½ÇÈ¥¿´£¬Ó¦¸Ã¿¼ÂÇÓÅ»¯Ó¦Óüܹ¹£¬½øÐÐÒÀÀµÖÎÀí£¬¾¡Á¿±ÜÃâ³åÍ»¡£
Áù ͨ¹ýÒÀÀµ¼Ü¹¹ÖÎÀí½â¾öÒÀÀµ³åÍ»
1 ¸´ÔÓÒÀÀµ±ê×¼»¯¡¢¼ò»¯ÖÎÀí
Ê×ÏÈ£¬ÒÀÀµ±¾Éí¾ÍÊÇÒ»ÖÖ¸´ÔÓµÄÒµÎñ¡£´ó²¿·ÖÒÀÀµ±³ºó¶¼ÓнÏÉîµÄÒµÎñÁìÓò֪ʶ »òÕß ¼¼ÊõÁìÓò֪ʶ¡£
±ÈÈçÎÒÃDzéѯËÑË÷¡£
ÒµÎñÁìÓò֪ʶ·½Ã棬¹âÏúÁ¿¾ÍÓн»Ò׳ɽ»±ÊÊý£¬³É½»¼þÊý£¬ËÑË÷ÏúÁ¿¡¾ÓÐЩ¶©µ¥²»¼ÆÈëËÑË÷ÏúÁ¿¡¿µÈ¡£
¼¼ÊõÁìÓò֪ʶ·½Ã棬Ö÷ËÑË÷£¬ÁªÃË¹ã¸æËÑË÷ÒýÇæÓÐʱÊÇÅäºÏʹÓõ쬱ÈÈçÉ̼ÒδÈëפ¹ã¸æÇ°¸øÉ̼Òչʾ»õÆ·ÐÅÏ¢¾ÍÐèÒª²éÖ÷ËÑË÷£¬¶øÈëפºóͶ·ÅÏÂÐÐʱÔòÐèÒªÓÃ¹ã¸æÒýÇæ¡£²»Í¬ÒýÇæµÄµ÷Ó÷½·¨£¬½á¹û¶¼²»Ò»Ñù¡£
ÈçÏÂͼËùʾ£¬Èç¹ûÎÒÃÇÿ¸öÒµÎñÓ¦Óö¼¸÷×ÔʵÏÖ£¬ÄÇô¸÷Ó¦Óÿª·¢Í¬Ñ§¾ÍÒªÏû»¯´óÁ¿ËÑË÷¿Í»§¶ËÏà¹ØµÄÒµÎñ¡¢¼¼ÊõÁìÓò֪ʶ¡£³É±¾ÊǺܸߵġ£

Ãæ¶ÔÕâÖÖÇé¿ö£¬Èç¹ûÎÒÃǽ«ÕâÀิÔÓµÄÒÀÀµ£¬ÓÉרÈËowner½øÐÐͳһ°ü×°±ê×¼»¯¡¾×¨È˸ÉרÊ¡¿£¬»á´ó´óÌáÉý×éÖ¯ÐͬЧÂÊ¡£ÈçÏÂͼËùʾ¡£

ÎÒÃÇͨ¹ý¶ÔÖ÷ËÑË÷£¬ÁªÃËÒýÇæµÄͳһ·â×°¡£¶Ô¼ìË÷Ìõ¼þ£¬·µ»Ø½á¹ûµÄ±ê×¼»¯·â×°¡£´ó´ó½µµÍÁËͬѧÃǵĽÓÈë³É±¾£¬ÒÔÍùÒªÊìϤһ¸öÒýÇæµÄ½ÓÈë´ó¸ÅÒª2Ì죬Óñê×¼»¯·â×°ºóµÄwrapper£¬ÔÚרÈË£¬¹æ·¶ÎĵµµÄÖ¸µ¼Ï½ö0.5Ìì¾Í¿ÉÒÔ£¬´ó´óÌáÉýЧÂÊ¡£
2 ÖØÁ¿¼¶ÒÀÀµ´úÀí·þÎñ»¯
µÚÎå½ÚÖÐÓн²µ½£¬Ó¦ÓÃÒÀÀµµÄjar°ü¹ý¶à»áµ¼ÖÂÓ¦ÓÃÆô¶¯ºÜÂý£¬Òò´ËÈç¹ûÒ»¸öÒÀÀµÒýÈëjar°ü³¬¹ý30¸öÒÔÉÏʱ£¬Îñ±ØÒª¾¯Ì裬ÕâÖÖÒÀÀµÒýÈ뼸¸ö£¬¾Í»áÖð²½µ¼ÖÂÄ㹤×÷ЧÂÊ´ó´óϽµ¡£±ÈÈçIC£¬TP£¬ÓÅ»ÝÖÐÐĵĶþ·½°ü¾ÍÊǵäÐ͵ÄÀý×Ó¡£
ĿǰÎÒÃÇÕë¶ÔÕâÀàÒÀÀµ£¬ÊÇÖ±½Ó·â×°Ò»¸ö±ê×¼´úÀí·þÎñ£¬±ÜÃâÓ¦Óñ»ÕâÖÖ¾ÞÎÞ°Ô¶þ·½°üÍÏÂý¡£

¾¹ýÒÔÉÏ×ÛºÏÖÎÀíÊֶΣ¬È¡µÃÁ˺ܺõÄЧ¹û¡£Ä¿Ç°ÁªÃ˺ÜÉÙÔÙÐèÒª´ó¼ÒÈ¥½â¾ö³åÍ»ÎÊÌâ¡£

|