ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲图区欧美,福利片在线观看,福利一区二区http://www.aygfsteel.com/zhb8015/category/51425.htmlzh-cnFri, 20 Apr 2012 03:09:28 GMTFri, 20 Apr 2012 03:09:28 GMT60eclipse m2eclipse插äšg的安装和配置http://www.aygfsteel.com/zhb8015/articles/375260.htmlzhb8015zhb8015Thu, 19 Apr 2012 05:53:00 GMThttp://www.aygfsteel.com/zhb8015/articles/375260.htmlhttp://www.aygfsteel.com/zhb8015/comments/375260.htmlhttp://www.aygfsteel.com/zhb8015/articles/375260.html#Feedback0http://www.aygfsteel.com/zhb8015/comments/commentRss/375260.htmlhttp://www.aygfsteel.com/zhb8015/services/trackbacks/375260.htmlhttp://wenku.baidu.com/view/582a336027d3240c8447ef60.html

]]>
maven 构徏AppFuse原型˜q‡ç¨‹åQˆè{åQ?/title><link>http://www.aygfsteel.com/zhb8015/articles/375177.html</link><dc:creator>zhb8015</dc:creator><author>zhb8015</author><pubDate>Wed, 18 Apr 2012 13:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhb8015/articles/375177.html</guid><wfw:comment>http://www.aygfsteel.com/zhb8015/comments/375177.html</wfw:comment><comments>http://www.aygfsteel.com/zhb8015/articles/375177.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhb8015/comments/commentRss/375177.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhb8015/services/trackbacks/375177.html</trackback:ping><description><![CDATA[http://appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese  <img src ="http://www.aygfsteel.com/zhb8015/aggbug/375177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhb8015/" target="_blank">zhb8015</a> 2012-04-18 21:46 <a href="http://www.aygfsteel.com/zhb8015/articles/375177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>¾l“合Maven2˜q›è¡ŒJ2EE™å¹ç›®æž„徏(è½?http://www.aygfsteel.com/zhb8015/articles/375116.htmlzhb8015zhb8015Wed, 18 Apr 2012 07:38:00 GMThttp://www.aygfsteel.com/zhb8015/articles/375116.htmlhttp://www.aygfsteel.com/zhb8015/comments/375116.htmlhttp://www.aygfsteel.com/zhb8015/articles/375116.html#Feedback0http://www.aygfsteel.com/zhb8015/comments/commentRss/375116.htmlhttp://www.aygfsteel.com/zhb8015/services/trackbacks/375116.htmloriginal:http://www.aygfsteel.com/mlzry0612/archive/2011/07/11/223403.html

一.背景
Maven2 的基本原理很½Ž€å•,采用˜qœç¨‹ä»“库和本åœîC»“库以å?pomåQˆproject object modelåQ?xml åQŒå°† pom.xml 中定义的 jar æ–‡äšg从远½E‹ä»“库下载到本地仓库åQŒå„个应用ä‹É用同一个本åœîC»“库的 jar åQŒåŒä¸€ä¸ªç‰ˆæœ¬çš„ jar 只需下蝲一‹Æ¡ï¼Œè€Œä¸”避免每个应用都去拯‚´ jar 。如å›?1 。同时它采用了现在流行的插äšg体系架构åQŒåªä¿ç•™æœ€ž®çš„æ ¸å¿ƒåQŒå…¶ä½™åŠŸèƒ½éƒ½é€šè¿‡æ’äšgçš„åŞ式提供,所以在执行 maven ä»ÕdŠ¡æ—Óž¼Œæ‰ä¼šè‡ªåŠ¨ä¸‹è²éœ€è¦çš„æ’äšg。这个特性也为客æˆïL³»¾lŸçš„升çñ”带来的很大的方便åQŒå®¢æˆäh¯‹Æ¡å‡¾U§çš„æ—¶å€™å¯ä»¥ä‹É用maven的远½E‹éƒ¨¾|²åŠŸèƒ½è‡ªåŠ¨ä¸‹è½½æœ€æ–°çš„¾pȝ»Ÿ¾l„äšgåQˆjaråQ‰ï¼Œòq‰™‡æ–°æ‰“包部¾|ÔŒ¼Œå¾ˆå¤§½E‹åº¦çš„减ž®‘çš„¾pȝ»Ÿå‡çñ”的工作量ã€?
理解Maven的原理,可以参è€?Pear ――åQŽÍ¿ƒåQ°æ‰©å±•与应用库( the PHP Extension and Application Repository åQ‰ï¼Œå…¶åŽŸç†éžå¸¸ç±»ä¼û|¼Œéƒ½æœ‰ä¸€ä¸ªå®˜æ–¹åº“åQŒéƒ½æ˜¯å¾®å†…æ ¸åQŒé€šè¿‡¾|‘络ž®†éœ€è¦çš„æ–‡äšg下蝲到本圎ͼŒé€šè¿‡å®˜æ–¹ä»“库ž®†ç›¸åº”çš„¾cÕdº“˜q›è¡Œ¾lŸä¸€½Ž¡ç†ã€?
Maven2的基本安装方法网上很多,ž®±åˆ°http://maven.apache.org下蝲一个最新版åQŒè§£åŽ‹åŽå›_¯åQŒå¦‚果需要在命ä×o行运行,˜q˜éœ€è¦è®¾¾|®ä¸€äº›çŽ¯å¢ƒå˜é‡ï¼Œ¾|‘上的资料很多,˜q™é‡Œž®×ƒ¸å¤šè¯´äº†ã€‚æ€ÖM¹‹åQŒå®‰è£…成功后当你在命令行下执行maven -version后正¼‹®æ˜¾½Cºå½“前maven的版本即可ã€?
我们在项目中¾l“合maven的进行开发的主要思èµ\åQ?
1.建立支持Maven2的开发框æžÓž¼Œæ¡†æž¶ä¸­ç»“合了一些项目功能和工具¾c»ï¼Œòq¶ä¸”此框架本íw«æ˜¯ä¸€ä¸ªeclipse工程åQŒæ”¯æŒä‹É用eclipse IDE的开发,òq‰™€šè¿‡CVS可进行团队协作ã€?
2.在Maven2çš„pom.xml中制定开发框架的依赖包,òq¶å¾ç«‹ä¾èµ–包的团队管理本地服务器åQŒä‹É团队中的包依赖得到统一½Ž¡ç†ã€?
3.每日下班后,在构建服务器上每日从cvs上下载各个团队开发äh员的代码åQŒç»Ÿä¸€˜q›è¡Œé›†æˆæž„徏和测试。由于是每日构徏åQŒæ‰€ä»¥å‘现的bug可及时反馈给开发äh员进行修正,避免了一般开发过½E‹ä¸­çš„bug长时间遗留的情况ã€?

äº?实施˜q‡ç¨‹

ä¸ÞZº†å®žçŽ°ä¸Šè¿°æ€èµ\åQŒæˆ‘们分几步实施åQ?

1.首先需要构å»ÞZ¸€ä¸ªç³»¾lŸçš„开发框æž?/strong>åQ?
我们有两¿Uæ–¹å¼æž„建,
其一是从零开始构建全新的框架åQŒè¿›å…¥commond lineåQŒcd åˆîC¸€ä¸ªç›®å½?åQŒæ‰§è¡?


Java代码 复制代码
  1. mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp  


执行完毕后接下来cd 到项目目录my-webapp下,执行
Java代码 复制代码
  1. mvn package  
  2. mvn eclipse:eclipse  


之后åQŒæ‰“å¼€eclipseåQŒåˆ°å…¶ç›®å½•下导入™å¹ç›®åQŒåƈ手动¾~–辑pom.xmlæ–‡äšgåQŒè®¾å®šæŒ‡å®šçš„jar包,比如加入一个jwebunitçš„jar包,我们需要在pom中添加一ŒDµï¼š
Java代码 复制代码
  1. <dependency>   
  2.             <groupId>jwebunit</groupId>   
  3.             <artifactId>jwebunit</artifactId>   
  4.             <version>1.2</version>   
  5.             <scope>test</scope>   
  6.             <exclusions>   
  7.                 <exclusion>   
  8.                     <groupId>rhino</groupId>   
  9.                     <artifactId>js</artifactId>   
  10.                 </exclusion>   
  11.             </exclusions>   
  12.         </dependency>  



其中指定了包的名¿UŽÍ¼Œç‰ˆæœ¬åQŒä‹É用的范围域等åQŒpom.xml讄¡½®æ–¹å¼¾|‘上也是一堆一堆的åQŒå…·ä½“的可以自己搜搜。同时我们也可以使用maven2åœ?eclipse中的插äšg˜q›è¡Œ¾~–辑åQŒå¾ˆæ–¹ä¾¿åQŒå°±ä¸ç”¨è®îC½é‚£äº›è¯¥æ­»çš„æ ‡½{¾äº†ã€‚插件下载地址 http://m2eclipse.codehaus.org /updateåQŒå°†˜q™ä¸ªurl填入到eclipseçš„Help-》Software Updates->find&install中新å»ÞZ¸€ä¸ªæ’件下载地址的对话框中即可下载ã€?
˜q™ç§æ–¹å¼æ˜¯å®Œå…¨è‡ªå®šä¹‰ä¸€ä¸ªå…¨æ–°çš„工程后再˜q›è¡Œæ¡†æž¶æ­å¾åQŒæ¯”较篏åQŒå°¤å…¶æ˜¯æ·ÕdŠ ä¾èµ–åŒ…çš„æ—¶å€™ï¼Œéœ€è¦æ ¹æ®è‡ªå·Þqš„™å¹ç›®éœ€è¦ä¸€ä¸ªä¸€ä¸ªæ·»åŠ ï¼Œå¾ˆçƒ¦äººï¼Œæ‰€ä»¥æˆ‘ä»¬ä‹É用的½W¬äºŒä¸ªæ–¹æ³•就直接找了一个现成的åQŒåˆ° Appfus 的网ç«?a target="_blank">http://appfuse.org/ æ ÒŽ®™å¹ç›®éœ€è¦ä¸‹è½½äº†ä¸€ä¸ªé¡¹ç›®æ¡†æž¶ä½œä¸ºåŽŸåž‹ï¼Œæˆ‘ä»¬ä½¿ç”¨çš„æ˜¯appfuse-light-webwork-ibatis- 1.8.2åQˆwebwork2.26,spring2.0,ibatis2.0åQ‰ï¼Œå¦‚果你ä‹É用的是其他的的技术,å¦?struts2åQŒhibernate....直接到网站上下蝲一个相应的框架卛_¯ã€‚appfuse框架使用maven2ä½œäØ“åŸºæœ¬æž„å¾å·¥å…·åQŒå…¶ä¸­è‡ªå¸¦çš„ pom.xml也替开发äh员写好了åQŒä¸­æ‰€å®šä¹‰çš„依赖包可满­‘³ä¸€èˆ¬çš„开发需要,如需要自己指定的包,那么直接在其pom.xml中添加即可。要ž®†è¿™ä¸ªæ¡†æž¶ä½œä¸ºeclipse工程使用åQŒéœ€è¦åœ¨è§£åŽ‹åŽçš„æ¡†æž¶ç›®å½•ä¸‹æ‰§è¡Œï¼š

Java代码 复制代码
  1. mvn eclipse:eclipse -DdownloadSources=true  



˜q™ä¸ªå‘½ä×o会将工程ž®†æ¡†æž¶è{æ¢äØ“eclipse工程åQŒåƈ从远½E‹ä¸‹è½½jar包到本地仓库åQˆwindow下是(C:\Documents and Settings\${username}\.m2\repositoryåQ‰ï¼Œä¹‹åŽæ‰§è¡ŒåQ?

Java代码 复制代码
  1. mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repo  



其中path-to-eclipse-workspace是本机的eclipseçš„worksapceçš„èµ\径。执行后maven会在eclipse中徏立一个M2_REPO环境变量åQŒåƈž®†å…¶ä¸­æ‰€æœ‰çš„jar包引入到工程中,完全自动化,十分方便ã€?
打开eclipse修改开发中的环境变量(我们™å¹ç›®ä¸­ä‹É用了Myeclipse插äšgåQ‰ï¼Œæ‰‘Öˆ°ç›¸åº”的工½E‹ï¼Œå‘现框架中已有一些代码,˜q™æ˜¯appfuse提供¾l™å¼€å‘äh员的½CÞZ¾‹ä»£ç åQŒæˆ‘们可以按照自å·×ƒ»¥å‰é¡¹ç›®çš„¿U¯ç¯˜q›è¡Œå¯ÒŽ¡†æž¶è¿›è¡Œå®Œå–„,形成一套自å·Þqš„开发框æžÓž¼Œä¹‹åŽè®„¡½®å·¥ç¨‹çŽ¯å¢ƒå˜é‡åQŒåœ¨è¯¥é¡¹ç›®ä¸­å³é”® ->Myeclipse->add web capabilities->指定该工作空间下的Src/main/webappsä½œäØ“WEB工程的根路径åQŒåƈ指定修改JAVA Build Pathä¸?
Java代码 复制代码
  1. src/main/java   
  2. src/main/resource   
  3. src/test/java  

的三个soucrefolderçš„outputpath 为scr/main/webapp/WEB-Inf/classåQŒè¿™æ ¯‚®¾¾|®çš„目的是便于开发äh员在本地˜q›è¡Œéƒ¨çÖv‹¹‹è¯•åQŒå¦åˆ™æŒ‰ç…§appfuse原有的工½E‹è®¾¾|®æ˜¯ä¸èƒ½˜q›è¡Œ™åºåˆ©éƒ¨çÖvçš„ã€?
è‡Ïx­¤åQŒæˆ‘们已¾lå°†Maven2¾l“合到项目中åQŒä¸€å¼€å§‹å¯èƒ½å¯¹ç›®å½•¾l“构有些不适应åQŒæ¯•竟这是mavenæä¾›çš„é¡¹ç›®æ¡†æž¶æ ¼å¼ï¼Œå¯ä»¥ä¿®æ”¹ä¸ø™‡ªå·×ƒ¹ æƒ¯çš„åQŒä½†æ˜¯ä¸å»ø™®®˜q™æ ·åšã€‚设¾|®å®ŒæˆåŽåQŒcd到项目èµ\径下åQŒè¿è¡?
Java代码 复制代码
  1. mvn test   
  2. mvn package  
  3. mvn install  



三个命ä×oåQŒå‡æˆåŠŸåŽï¼Œå¯ä¸Šä¼ åˆ°cvs/svn上面去,å…׃ín¾l™é¡¹ç›®ç»„人员åQŒå„开发äh员可直接使用åQŒä½†æœ‰å¯èƒ½M2_REPO环境讄¡½®è·¯å¾„ä¸ä¸€æ øP¼ˆC:\Documents and Settings\${username}\.m2\repositoryåQŒæ¯•竟不是所有äh都把¾pȝ»Ÿè£…在C盘)åQŒéœ€è¦æ‰‹åŠ¨ä¿®æ”¹ä¸€ä¸‹ã€?

2.建立开发团队内部仓�/strong>
ä¸ÞZº†ä¾¿äºŽå›¢é˜Ÿçš„依赖包½Ž¡ç†åQŒæˆ‘们不能全部ä‹É用官¾|‘的仓库åQŒæ¯•竟上面不具备我们™å¹ç›®å¼€å‘æ‰€éœ€è¦çš„æ‰€æœ‰çš„ä¾èµ–åŒ…ï¼Œæ‰€ä»¥æˆ‘ä»¬éœ€è¦äØ“è‡ªå·±çš„å›¢é˜Ÿå¾ç«‹ä¸€ä¸ªå†…éƒ¨ä»“åº“ï¼Œå¯ä»¥è‡ªå·±½Ž¡ç†æ‰€éœ€çš„依赖包åQŒå¾ç«‹ä¸€ä¸ªå†…部仓库也十分½Ž€å•(附录中我们会使用artifactory˜q›è¡Œå¼€å‘内部库建立åQ‰ï¼š

首先需要一ä¸?http server åQŒæ‰¾å°æœåŠ¡å™¨è£…ä¸Š apache ž®Þp¡Œã€‚放一个空çš?maven 目录åˆ?htdocs 下,假设服务å™?ip ä¸?192.168.0.1 åQŒç¡®è®¤èƒ½ç”?http://192.168.0.1/maven 讉K—®åˆ°ã€?

copy 本地仓库的jar包到服务器:对于 windows xp 来说一般在 C:\Documents and Settings\ åQ?username%\.m2 下,其中åQ?username åQ…äØ“æ“ä½œ¾pȝ»Ÿç™Õd½•用户名。这时你可以看到 ${user.home}/.m2/ 下有ä¸?repository 目录åQŒé‡Œé¢æœ‰å¾ˆå¤šçš„项目相å…?jar åQŒç›®å½•按 groupId/ artifactId/version 排好。把 repository 目录整个拯‚´åˆ?apache 服务器的 maven 目录下,如果需要官方缺ž®‘çš„ jar 或公司内éƒ?jar åQŒä»¿ç…§è¿™ä¸ªç›®å½•结构,做好 jar 攑ֈ° maven 目录下。或者把包copy到本圎ͼŒ˜qè¡ŒåQ?
Java代码 复制代码
  1. mvn install:install-file -Dfile=X:/path/mail-1.3.jar -DartifactId=javamail -Dversion=1.3.1 -Dpackaging=jar -DgroupId=javamail  




开发äh员要使用内部仓库åQŒåªéœ€ä¿®æ”¹æœ¬åœ°å·¥ç¨‹pom.xml åQŒåœ¨ repository 配置后加上:

Java代码 复制代码
  1. <repository>   
  2.       <id>companyName</id>   
  3.       <url>http:// ${ip}/maven</url>   
  4. </repository>  


3.每日构徏

ä¸ÞZº†ä¿è¯™å¹ç›®è´¨é‡åQŒå°½æ—©çš„发现™å¹ç›®ä¸­çš„bugåQŒæˆ‘们需要每日对¾pȝ»Ÿ˜q›è¡Œæž„徏åQŒè¿™ä¹Ÿæ˜¯æˆ‘们使用maven的初衷之一åQŒmaven的几个命令就可帮助我们完成这™å¹ä“Q务,当然我们可以使用持箋构徏工具与maven¾l“合实现定时自动构徏。构建方式:
Java代码 复制代码
  1. mvn test   
  2. mvn package  
  3. mvn install  


maven 会自动编译,‹¹‹è¯•åQŒè¿è¡Œæ‰€æœ‰çš„testcaseåQŒè¿™ä¹Ÿè¦æ±‚我们的开发äh员一定要按照规则¾~–写单元‹¹‹è¯•代码åQŒå¦åˆ™æ¯æ—¥æž„建的意义ž®×ƒ¸å¤§äº†ã€‚appfuse框架中提供了很好的单元测试代码,包括针对数据库层åQŒä¸šåŠ¡é€»è¾‘å±‚ï¼Œweb展示层等½{‰ï¼Œå¦‚果我们能很好的¾~–写˜q™äº›å•å…ƒ‹¹‹è¯•åQŒé‚£ä¹ˆå¯¹äºŽç³»¾lŸåŽ¾l­çš„¾~ºé™·½Ž¡ç†å’ŒæŽ§åˆ¶æ˜¯å¤§æœ‰è£¨ç›Šçš„ã€?

构徏完成后或构徏旉™œ€è¦å¯¹æœ€æ–°ç‰ˆæœ¬çš„™å¹ç›®˜q›è¡Œéƒ¨çÖvåQŒä¾¿äºŽæ¬¡æ—¥å®‰æŽ’测试äh员进行测试,maven提供多多¿Uéƒ¨¾|²æ–¹å¼ï¼Œåœ¨pom.xml˜q›è¡Œ™å¹ç›®çš„部¾|²é…¾|®ï¼Œä¸åŒçš„部¾|²æ–¹å¼æ ¹æ®åè®®çš„不同åQŒé…¾|®æ–¹å¼ä¹Ÿæœ‰æ‰€å·®å¼‚åQ?
以文件方式部¾|?

Java代码 复制代码
  1. <project>   
  2.         [...]   
  3.         <distributionManagement>   
  4.             <repository>   
  5.                 <id>proficio-repository</id>   
  6.                 <name>Proficio Repository</name>   
  7.                 <url>file://${basedir}/target/deploy</url>   
  8.             </repository>   
  9.         </distributionManagement>   
  10.         [...]   
  11.     </project>  


以SSH2方式部çÖv

Java代码 复制代码
  1. <project>   
  2.         [...]   
  3.         <distributionManagement>   
  4.             <repository>   
  5.                 <id>proficio-repository</id>   
  6.                 <name>Proficio Repository</name>   
  7.                 <url>scp://sshserver.yourcompany.com/deploy</url>   
  8.             </repository>   
  9.             </distributionManagement>   
  10.         [...]   
  11.     </project>  


以SFTP方式部çÖv

Java代码 复制代码
  1. <project>   
  2.  [...]   
  3.  <distributionManagement>   
  4.      <repository>   
  5.          <id>proficio-repository</id>   
  6.          <name>Proficio Repository</name>   
  7.          <url>sftp://ftpserver.yourcompany.com/deploy</url>   
  8.      </repository>   
  9.  </distributionManagement>   
  10.  [...]   
  11.  </project>  

以扩展SSH方式部çÖv

目前为止上述3中方式已¾lè¢«Maven包含åQŒæ‰€ä»¥åªè¦distributionManagementž®±å¯ä»¥äº†åQŒä½†æ˜¯ä‹É用扩展SSH命ä×o部çÖv的话你不仅需要配¾|®distributionManagement˜q˜éœ€è¦ä¸€ä¸ªbuild extensionåQŒå¦‚ä¸?
Java代码 复制代码
  1. <project>   
  2.        [...]   
  3.        <distributionManagement>   
  4.            <repository>   
  5.                <id>proficio-repository</id>   
  6.                <name>Proficio Repository</name>   
  7.                <url>scpexe://sshserver.yourcompany.com/deploy</url>   
  8.            </repository>   
  9.        </distributionManagement>   
  10.        <build>   
  11.            <extensions>   
  12.                <extension>   
  13.                    <groupId>org.apache.maven.wagon</groupId>   
  14.                    <artifactId>wagon-ssh-external</artifactId>   
  15.                    <version>1.0-alpha-6</version>   
  16.                </extension>   
  17.            </extensions>   
  18.        </build>   
  19.        [...]   
  20.    </project>  

The build extension specifies the use of the Wagon external SSH provider, which does the work of moving your files to the remote server. Wagon is the general purpose transport mechanism used throughout Maven.

以FTP方式部çÖv

Java代码 复制代码
  1. <project>   
  2.         [...]   
  3.         <distributionManagement>   
  4.         <repository>   
  5.             <id>proficio-repository</id>   
  6.             <name>Proficio Repository</name>   
  7.             <url><A href="ftp://ftpserver.yourcompany.com/deploy</url>" target=_blank>ftp://ftpserver.yourcompany.com/deploy</url></A>   
  8.         </repository>   
  9.         </distributionManagement>   
  10.         <build>   
  11.             <extensions>   
  12.                 <extension>   
  13.                 <groupId>org.apache.maven.wagon</groupId>   
  14.                 <artifactId>wagon-ftp</artifactId>   
  15.                 <version>1.0-alpha-6</version>   
  16.                 </extension>   
  17.             </extensions>   
  18.         </build>   
  19.         [...]   
  20.     </project>  


一旦你配置好了相应的POM你可以执行下列命令来开始部¾|ÔŒ¼š
mvn deploy

同时也可通过执行一下命令生成此™å¹ç›®çš„ç«™ç‚ÒŽŠ¥å‘Šï¼Œä¾›é¡¹ç›®å‚ä¸Žäh员ä‹É用ã€?
mvn site


ä¸? ¾l“论

maven的强大显而易见,有很多其他的ç‰ÒŽ€§æœ¬æ–‡æ²¡æœ‰æåŠï¼Œå¦‚对各类插äšg的支持,以及寚w¡¹ç›®æ¨¡å—划分和¾l§æ‰¿å…³ç³»çš„管理,˜q™äº›éƒ½æ˜¯maven的特性,也是 maven寚w¡¹ç›®ç”Ÿå‘½å‘¨æœŸçš„详尽诠释åQŒæœ‰å…´è¶£æ·±å…¥çš„TX可以下蝲我在附äšg中提供的教程《Better Builds With Maven2ã€?同时我也提供我根据appfuse建立的一套项目框æžÓž¼Œå¯åœ¨myeclipse环境下ä‹É用,大家可以共同探讨完善ã€?

é™?åQšä‹É用artifactory为Maven2团队开发徏立内部开发仓库详è§?/strong>
在真正ä‹É用Maven后是为团队进行定åˆÓž¼Œæ‰€ä»¥æˆ‘们不应ä‹É用官¾|‘的开发库åQŒåº”在本地徏立一个内部开发库对团队的jar包进行管理,所以我们首先搭å»ÞZ¸€ä¸ªå†…部库环境åQŒé™¤æ–‡ç« ä¸Šé¢æ‰€˜q°çš„æ­å¾Apache服务器方法外åQŒæˆ‘们还可以使用artifactory(下蝲地址åQ?a target="_blank">http://www.jfrog.org/sites/artifactory /latest/)åQŒä¸€ä¸ªå¾ˆå¥½çš„maven内部库的应用¾pȝ»ŸåQŒä¸‹è½½åŽæ‰§è¡Œbin目录下的artifactory.bat命ä×o卛_¯ã€‚启动后可访问控制台http://内部库ip:8081/artifactory/éªŒè¯æœåŠ¡æ˜¯å¦æˆåŠŸå¯åŠ¨ã€‚é»˜è®¤çš„ç”¨æˆ·åäØ“adminåQŒå¯†ç äØ“password。artifactory最重要的是可配¾|®ç¬¬ä¸‰æ–¹jar包,在deploy artifactsä¸­åŠ å…¥åÆˆåˆ¶å®šå…¶groupIdå’ŒartifactId卛_¯
åQˆä¸è¦å¿˜è®°æ›´æ”ÒŽœ¬åœ°çš„pom.xmlæ–‡äšg引入新加的jar包)ã€?
在开发端我们需要更改全局配置文äšgsetting.xmlæ–‡äšgåQŒå°†å·¥ç¨‹ä¸­setting.xml攑օ¥æœ¬åœ°maven2->conf目录下,配置内部仓库的地址åQŒåªéœ€è¦åœ¨setting.xmlçš„mirrors元素中加入以下配¾|®ï¼š
Java代码 复制代码
  1. <mirror>   
  2.       <id>emay local</id>   
  3.       <mirrorOf>central</mirrorOf>   
  4.       <name>emay local artifactory</name>   
  5.       <url>http://内部库ip:8081/artifactory/repo</url>   
  6.     </mirror>  

˜q™é‡Œè¦æ³¨æ„çš„æ˜¯ï¼Œåœ¨åŠ å…¥è¿™ŒDµä»£ç åŽæˆ‘ä‹É用的appfuse框架中自带的应用服务器tomcat6˜q›è¡Œæž„徏åQŒä¸èƒ½æ­£å¸¸è¿è¡Œï¼ŒæŠ¥tomcat出错åQŒæŠŠ˜q™æ®µåŽÀLŽ‰æˆ–è€…åœ¨pom.xml中将应用服务器改为tomcat5.5后运行正常。看来maven˜q˜æ˜¯æœ‰ä¸ž®‘bug需要改˜q›ã€?

配置完成后再˜qè¡Œmvn install卛_¯æ­£å¸¸˜q›è¡Œæž„徏åQŒmaven会从本地内部库中å¯ÀL‰¾™å¹ç›®æ‰€ä¾èµ–çš„jar包。运行mvn clean清除maven生成文äšgã€?



é™?åQšmaven2命ä×o大全

validateåQŒéªŒè¯å·¥½E‹æ˜¯å¦æ­£¼‹®ï¼Œæ‰€æœ‰éœ€è¦çš„资源是否可用ã€?
compileåQŒç¼–译项目的源代码ã€?
test-compileåQŒç¼–译项目测试代码ã€?
teståQŒä‹É用已¾~–译的测试代码,‹¹‹è¯•已编译的源代码ã€?
packageåQŒå·²å‘布的格式,如jaråQŒå°†å·²ç¼–译的源代码打包ã€?
integration-teståQŒåœ¨é›†æˆ‹¹‹è¯•可以˜qè¡Œçš„环境中处理和发布包ã€?
verifyåQŒè¿è¡Œä“Q何检查,验证包是否有效且辑ֈ°è´¨é‡æ ‡å‡†ã€?
installåQŒæŠŠåŒ…安装在本地的repository中,可以被其他工½E‹ä½œä¸ÞZ¾èµ–来使用
deployåQŒåœ¨æ•´åˆæˆ–者发布环境下执行åQŒå°†æœ€¾lˆç‰ˆæœ¬çš„包拷贝到˜qœç¨‹çš„repositoryåQŒä‹É得其他的开发者或者工½E‹å¯ä»¥å…±äº«ã€?
generate-sourcesåQŒäñ”生应用需要的ä»ÖM½•额外的源代码åQŒå¦‚xdocletã€?


]]>
svn server & client(è½?http://www.aygfsteel.com/zhb8015/articles/375079.htmlzhb8015zhb8015Wed, 18 Apr 2012 03:31:00 GMThttp://www.aygfsteel.com/zhb8015/articles/375079.htmlhttp://www.aygfsteel.com/zhb8015/comments/375079.htmlhttp://www.aygfsteel.com/zhb8015/articles/375079.html#Feedback0http://www.aygfsteel.com/zhb8015/comments/commentRss/375079.htmlhttp://www.aygfsteel.com/zhb8015/services/trackbacks/375079.htmlvisual svn server:  http://www.visualsvn.com/server/download/
original:   http://www.iteye.com/topic/653681
(http://www.cnblogs.com/duantianya/archive/2010/11/25/1888185.html
http://www.oschina.net/p/visualsvn-server)


SVN安装åQ?
1、安装服务器
######### 安装文äšgåQšSVN服务å™?##############
# http://www.collab.net/downloads/subversion #
CollabNetSubversion-server-1.6.9-1.win32.exe
点击安装CollabNetSubversion-server.exeåQŒåœ¨½W¬äºŒä¸ªNextæ—‰™€‰æ‹©Svnserve安装模式åQŒåŽ»æŽ‰ç¬¬äºŒä¸ªå‹‘Ö³å¯ã€?
往下可以选择自己的安装èµ\径,点击Next后Finish卛_¯ã€?
½E‹åºè¢«å®‰è£…到åQšC:\Program Files\CollabNet\Subversion Server

2、安装客æˆïL«¯
######### 安装文äšgåQšSVN客户ç«?##############
# http://tortoisesvn.net/downloads #
TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.msi
LanguagePack_1.6.8.19260-win32-zh_CN.msi
点击安装软äšgåQŒæŒ‰æç¤ºå®‰è£…卛_¯ã€?

3、配¾|®æœåС噍

在CollabNetSubversion的安装完成后åQŒä‹É用命令行工具创徏版本åº?
a.创徏一个名为SVN(例如D:\SVN\)的空文äšgå¤¹ï¼Œä½œäØ“ä½ çš„æ‰€æœ‰ç‰ˆæœ¬åº“çš„æ ¹
b.在D:\SVN\里创建另一个目录SvnRepos
c.打开命ä×o行窗å?或DOS½H—口)åQŒè¿›å…¥D:\SVN\目录åQŒè¾“å…?
  svnadmin create --fs-type fsfs ProjRepo
  ˜q™æ ·åQŒä½ ž®±åœ¨D:\SVN\SvnRepos\ProjRepo创徏了一个新的版本库ã€?

4、修攚w…¾|®æ–‡ä»?

对三个文件进行配¾|®ï¼Œåœ¨D:\SVN\SvnRepos\ProjRepo\conf目录ä¸?分别为svnserve.confåQŒpasswdåQŒauthz

<1> æ–‡äšgsvnserve.conf中把下面前面çš?号去掉,修改如下åQ?

引用

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz


<2> æ–‡äšgpasswd增加用户åQŒä¿®æ”¹å¦‚下:

引用

[users]

admin = 123456




<3> æ–‡äšgauthz修改如下åQ?

引用

[groups]

admin = admin

[/]

@admin = rw

*= r


5、运�svnserve

在终端输�
svnserve.exe -d -r D:\SVN\SvnRepos

6、以服务形式˜qè¡Œ svnserve
使用普通用æˆïL›´æŽ¥è¿è¡?svnserve 通常不是最好的æ–ÒŽ³•。它意味着你的服务器必™åÀLœ‰ä¸€ä¸ªç”¨æˆïL™»å½•,˜q˜è¦è®°ç€é‡æ–°å¯åŠ¨æœåŠ¡å™¨åŽé‡æ–°å¯åŠ¨ svnserve。最好的æ–ÒŽ³•是将 svnserve ä½œäØ“ windows 服务˜qè¡Œã€?
sc create svnserve binpath= "C:\Program Files\CollabNet\Subversion Server\svnserve.exe --service --root D:\SVN\SvnRepos\ProjRepo" displayname="Subversion" depend= tcpip start= auto

#Add a description after creating the service#
˜qè¡Œä¸‹åˆ—代码
sc description svnserve "Subversion server (svnserve)"

7、在MyEclipse中配¾|®SVNåQ?

æ–ÒŽ³•一(我按照这¿Uæ–¹æ³•做的,而且没问é¢?åQ?

<1> 若没有该选项åQŒåˆ™é‡‡ç”¨ä»¥ä¸‹æ–ÒŽ³•åQŒç‚¹å‡»Help—Software Updates---Add/Remove Software…在出现的对话框中选择Add---Add Site---输入name为SVNåQŒURL为http://subclipse.tigris.org/update_1.0.x 点击OK--展开Personal Sites--选中subclipse-- 安装完成卛_¯

打开MyEclipse菜单---Window---Show View---Other….选择SVN---SVN资源库在Myeclipse右下角出现SVN透视å›?

<2> 在空白处叛_‡»---新徏---资源库位¾|®ï¼Œåœ¨URL选项中写入:svn://localhost/,¼‹®å®šå›_¯

在弹出的对话框中输入用户名和密码åQˆäؓ之前在文件修改的用户名和密码åQ‰ï¼Œ¼‹®å®š   

<3> 叛_‡»å»ºç«‹çš„资源库位置åQŒæ–°å»ÞZ¸€ä¸ªè¿œ½E‹æ–‡ä»¶å¤¹åQŒå¡«å…¥æ–‡ä»¶å¤¹åï¼ŒNext—Finish

<4>叛_‡»æ–°å¾çš„远½E‹æ–‡ä»¶å¤¹åQŒé€?导入 选项åQŒé€‰æ‹©å¯¼å…¥ç›®æ ‡æ–‡äšg的目录,点击¼‹®å®šå›_¯

<5>打开file菜单---New---Others….---SVN---从SVN中出去项ç›?--next---选定资源库位¾|?--Next---选择目标˜qœç¨‹æ–‡äšgå¤?--Next---为项目命å?--Finish

æ–ÒŽ³•二(˜q™ç§æ–ÒŽ³•安装的subclipse会有一点点问题åQŒè§£å†Œ™“v来还挺麻烦)åQ?
<1>subclipse.tigris.orgåQšhttp://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
下蝲SubclipseåQŒsite-1.0.6.zip
<2>解压‹Æ¡æ–‡ä»Óž¼Œåœ¨Myeclipse菜单--help--Sofeware Update--Add/Remove SoftWare...---Add--Add Local--选中site-1.6.10.zip--选中Personal Sites--完成安装ã€?


]]>
myeclipse6.x,7.x安装svn插äšghttp://www.aygfsteel.com/zhb8015/articles/375072.htmlzhb8015zhb8015Wed, 18 Apr 2012 02:28:00 GMThttp://www.aygfsteel.com/zhb8015/articles/375072.htmlhttp://www.aygfsteel.com/zhb8015/comments/375072.htmlhttp://www.aygfsteel.com/zhb8015/articles/375072.html#Feedback0http://www.aygfsteel.com/zhb8015/comments/commentRss/375072.htmlhttp://www.aygfsteel.com/zhb8015/services/trackbacks/375072.html一、myeclipse6.x,7.x安装svn插äšg
original:http://developer.51cto.com/art/201005/201684.htm
二ã€?a href="#other">其它安装æ–ÒŽ³•åQ?br />插äšg下蝲地址åQšæ³¨æ„ç‰ˆæœ¬åº”ä¸Žå®¢æˆïL«¯åŒšw…
http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

本节主要讲解一下MyEclipse中SVN安装配置åQŒå…¶ä¸­ä¸»è¦æ˜¯MyEclipse6.Xå’ŒMyEclipse7.XåQŒä¸‹é¢æ˜¯å…·ä½“的介¾lï¼Œ‹Æ¢è¿Žå¤§å®¶èƒ½å’Œæˆ‘一起学习ã€?/p>

1.SVN中文官方¾|‘ç«™åQšhttp://www.subversion.org.cn
2.中文文档åQšhttp://www.subversion.org.cn/svnbook/

一、MyEclipse6.X
SVN安装配置在MyEclipse6.X中如何进行,6.x的操作比较简单,可通过官方提供的链接,利用MyEclipse内置的FindandInstall功能来安装ã€?br />1.打开MyeclipseåQŒåœ¨èœå•栏中选择Help→SoftwareUpdates→FindandInstallåQ?br />2.选择SearchfornewfeaturestoinstallåQŒç‚¹å‡»Next˜q›å…¥ä¸‹ä¸€æ­¥ï¼›
3.点击“NewRemoteSite”按钮åQŒåœ¨å¼¹å‡ºçš„对话框中输入:
nameåQšsvn
urlåQšhttp://subclipse.tigris.org/update_1.4.x
点击OKåQŒå…³é—­å¯¹è¯æ¡†åQŒåƈ点击Finish按钮åQŒMyeclipse自动下蝲插äšg安装½E‹åºåQ?br />4.下蝲完插件之后,˜q›å…¥å®‰è£…画面ã€?br />5.选择所要安装的SVN插äšg内容åQŒè¿™é‡ŒåŽ»æŽ‰ç¬¬äºŒä¸ªé€‰é¡¹SubclipseIntegrationsåQŒç‚¹å‡ÖM¸‹ä¸€æ­¥ï¼›
6.选择“Iacceptthetermsinthelicenseagreements”òq¶ç‚¹å‡»NextåQŒç›´åˆ°ç‚¹å‡»Finish卛_¯åQŒè¿›å…¥ä¸‹ä¸€æ­¥ã€?br />7.开始安装SVN插äšgåQŒå®‰è£…完成之后,重启Myeclipseã€?br />以下为安装完成后的配¾|®è¿‡½E‹ï¼š
8.在菜单栏中选择Window→OpenPerspective→Other打开Myeclipse试图列表。这个时候Myeclipse的视囑ֈ—表中åQŒå°±å‡ºçްäº?#8220;SVNRepositoryExploring”一™åV€?br />9.打开“SVNRepositoryExploring”视图。在左边½Iºç™½åŒºåŸŸåQŒå•å‡Õd³é”?#8594;New→RepositoryLocationã€?br />10.在Url一栏中输入http://IP/svn/projectNameåQŒç‚¹å‡»Finish按钮ã€?br />11.输入用户名和密码åQŒç‚¹å‡»OK卛_¯çœ‹åˆ°SVN下的目录¾l“构了ã€?/p>

二、MyEclipse7.X

SVN安装配置在MyEclipse7.X中如何进行,要知道subclipse要正常运转必™åÕdœ¨å®¢æˆ·ç«¯æœ‰svn存在åQŒå®žé™…上是存在svn˜q™æ ·subversioncommondline.
1.安装subversionclient
去这里http://subversion.tigris.org/看到有windows的安装介质奥。注意有些ähçˆÞq”¨ä¹Œé¾ŸåQŒçŽ°åœ¨çš„ä¹Œé¾Ÿå·²ç»ä¸å†æ”¯æŒsvncommondline。两¿Ué€‰æ‹©åQŒè¦ä¹ˆå®‰è£…http://www.sliksvn.com/en/downloadåQŒè¦ä¹ˆå®‰è£…http://www.collab.net/downloads/subversion/ã€?br />2.下蝲subclipse1.6çš„siteåŒ?br />把这个site-1.6.2解压开åQŒfeatures复制到C:\ProgramFiles\Genuitec\Common\featuresåQŒæˆ‘是默认安装的myeclipseåQŒplugins复制到这里C:\ProgramFiles\Genuitec\Common\pluginsã€?br />3.修改配置文äšg
¾~–辑C:\ProgramFiles\Genuitec\MyEclipse7.0\configuration\org.eclipse.equinox.simpleconfigurator\bundles.infoåQ?br />在最后增加以下内容:
org.tigris.subversion.clientadapter,1.6.0.2,file:plugins\org.tigris.subversion.clientadapter_1.6.0.2.jar,4,false
org.tigris.subversion.clientadapter.javahl.win32,1.6.0.3,file:plugins\org.tigris.subversion.clientadapter.javahl.win32_1.6.0.3.jara,4,false
org.tigris.subversion.clientadapter.javahl,1.6.0.3,file:plugins\org.tigris.subversion.clientadapter.javahl_1.6.0.3.jar,4,false
org.tigris.subversion.clientadapter.svnkit,1.6.0.1,file:plugins\org.tigris.subversion.clientadapter.svnkit_1.6.0.1.jar,4,false
org.tigris.subversion.subclipse.core,1.6.2,file:plugins\org.tigris.subversion.subclipse.core_1.6.2.jar,4,false
org.tigris.subversion.subclipse.doc,1.3.0,file:plugins\org.tigris.subversion.subclipse.doc_1.3.0.jar,4,false
org.tigris.subversion.subclipse.graph,1.0.7,file:plugins\org.tigris.subversion.subclipse.graph_1.0.7.jar,4,false
org.tigris.subversion.subclipse.mylyn,2.0.4,file:plugins\org.tigris.subversion.subclipse.mylyn_2.0.4.jar,4,false
org.tigris.subversion.subclipse.mylyn,3.0.0,file:plugins\org.tigris.subversion.subclipse.mylyn_3.0.0.jar,4,false
org.tigris.subversion.subclipse.ui,1.6.2,file:plugins\org.tigris.subversion.subclipse.ui_1.6.2.jar,4,false
4.安装完成后的配置工作å?.x。本文讲解MyEclipse中SVN安装配置问题完毕åQŒè¯·å…Ïx³¨æœ¬èŠ‚çš„å…¶ä»–ç›¸å…ÏxХ道ã€?/p>二、其它安装办æ³?a id="other" name="other">

æ–ÒŽ³•二:link安装
安装subclipse, MyEclipse9.0 SVN插äšg
1、从官网下蝲site-1.6.10.zipæ–‡äšg,¾|‘址æ˜?subclipse.tigris.org,
2、从中解压出featuresä¸?pluginsæ–‡äšg夹,复制到E:\MyEclipse\myPlugin\svn里面åQŒå…¶å®ƒçš„*.xmlæ–‡äšg不要ã€?br />3、在 E:\MyEclipse\MyEclipse9.0\dropins下新建文件svn.link,内容æ˜?path=E:\\MyEclipse \\myPlugin\\svn保存ã€?br />4ã€?唛呆å„?˜q™ä¸€æ­¥ä¸¼‹®å®šåQŒå…ˆä¸è¦åˆ é™¤)删除E:\MyEclipse\MyEclipse8.5\configuration \org.eclipse.updateæ–‡äšgå¤?br />5、重启myeclipsež®×ƒ¸€åˆ‡æ­£å¸æ€º†ã€‚[/size]
以上两种æ–ÒŽ³•都尝试成åŠ?br />æ–ÒŽ³•ä¸?直接解压
下蝲SVN插äšgåQšsite-1.6.10.zip
解压后将其全部文件拷贝至åQšD:\Program Files\Genuitec\MyEclipse 8.5\dropinsåQˆMyEclipse的安装目录)
重启MyEclipse卛_¯å‡ºçްSVNåQ?

æ–ÒŽ³•四:肯定可行的方æ³?/span>

1、下载最新的SVN包:
http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
2、在你的¼‚ç›˜ä¸Šä“Q意位¾|®åˆ›å»ºæ–‡ä»¶å¤¹åQ?#8220;myplugins/svn”。名字可以ä“Q取,ä¸ÞZº†æ–¹ä¾¿æ’äšg½Ž¡ç†åQŒå¾è®®å¿UîCØ““myplugins”ã€?br />3、将解压的svn里的两个文äšgå¤ÒŽ‹·è´åˆ°“myplugins/svn”下ã€?br />4、复制下列java代码åQŒä¿®æ”¹èµ\å¾„åÆˆæ‰§è¡ŒåQ?br />package app;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
 * MyEclipse9 插äšg配置代码生成å™?br /> *
 *
 */
public class PluginConfigCreator
{
    public PluginConfigCreator()
    {
    }
    public void print(String path)
    {
        List<String> list = getFileList(path);
        if (list == null)
        {
            return;
        }
        int length = list.size();
        for (int i = 0; i < length; i++)
        {
            String result = "";
            String thePath = getFormatPath(getString(list.get(i)));
            File file = new File(thePath);
            if (file.isDirectory())
            {
                String fileName = file.getName();
                if (fileName.indexOf("_") < 0)
                {
                    print(thePath);
                    continue;
                }
                String[] filenames = fileName.split("_");
                String filename1 = filenames[0];
                String filename2 = filenames[1];
                result = filename1 + "," + filename2 + ",file:/" + path + "/"
                        + fileName + "http://,4,false";
                System.out.println(result);
            } else if (file.isFile())
            {
                String fileName = file.getName();
                if (fileName.indexOf("_") < 0)
                {
                    continue;
                }
                int last = fileName.lastIndexOf("_");// 最后一个下划线的位¾|?br />                String filename1 = fileName.substring(0, last);
                String filename2 = fileName.substring(last + 1, fileName
                        .length() - 4);
                result = filename1 + "," + filename2 + ",file:/" + path + "/"
                        + fileName + ",4,false";
                System.out.println(result);
            }
        }
    }
    public List<String> getFileList(String path)
    {
        path = getFormatPath(path);
        path = path + "/";
        File filePath = new File(path);
        if (!filePath.isDirectory())
        {
            return null;
        }
        String[] filelist = filePath.list();
        List<String> filelistFilter = new ArrayList<String>();
        for (int i = 0; i < filelist.length; i++)
        {
            String tempfilename = getFormatPath(path + filelist[i]);
            filelistFilter.add(tempfilename);
        }
        return filelistFilter;
    }
    public String getString(Object object)
    {
        if (object == null)
        {
            return "";
        }
        return String.valueOf(object);
    }
    public String getFormatPath(String path)
    {
        path = path.replaceAll("http:////", "/");
        path = path.replaceAll("http://", "/");
        return path;
    }
    public static void main(String[] args)
    {
        /*你的插äšg的安装目å½?/
            String plugin = "æ”ÒŽˆå®‰è£…目录//Genuitec//svn";
        new PluginConfigCreator().print(plugin);
    }
}
˜q™é‡Œéœ€è¦æ³¨æ„çš„æ˜¯ä¿®æ”ÒŽˆä¸ºåˆšæ‰svn所在èµ\å¾„ï¼Œå»ø™®®æ”¹äØ“¾lå¯¹è·¯å¾„。比如d:/myplugins/svn/。。ã€?br />5ã€?扑ֈ°“$myeclipse_home/configuration /org.eclipse.equinox.simpleconfigurator/”åQŒæ‰“开其中çš?#8220;bundles.inf”æ–‡äšgåQŒäؓ了防止分不清是不 是我们自己后加的东西åQŒåœ¨æœ€åŽé¢å¤šå›žå‡ æ¬¡è½¦ï¼Œç„¶åŽ¾_˜è„“½W?步运行后的代码,保存
6、重启myeclipse





]]>
svn权限控制http://www.aygfsteel.com/zhb8015/articles/375071.htmlzhb8015zhb8015Wed, 18 Apr 2012 02:19:00 GMThttp://www.aygfsteel.com/zhb8015/articles/375071.htmlhttp://www.aygfsteel.com/zhb8015/comments/375071.htmlhttp://www.aygfsteel.com/zhb8015/articles/375071.html#Feedback0http://www.aygfsteel.com/zhb8015/comments/commentRss/375071.htmlhttp://www.aygfsteel.com/zhb8015/services/trackbacks/375071.htmlhttp://wenku.baidu.com/view/4ff3a22f453610661ed9f4d6.html

]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÁúÁêÏØ| Ë«ÁÉÊÐ| µ±ÐÛÏØ| Ï¿½­ÏØ| ½ú½­ÊÐ| º¼ÖÝÊÐ| µÂÇÕÏØ| ¶õ¶û¶à˹ÊÐ| ÉÌÄÏÏØ| ±¦É½Çø| ÈýÃ÷ÊÐ| ÂÞÆ½ÏØ| ÌìÖùÏØ| ÎÚÇ¡ÏØ| ÑÓ°²ÊÐ| ÕýÄþÏØ| ¶¡ÇàÏØ| ¿üÍÍÊÐ| ±£É½ÊÐ| ÐûÍþÊÐ| Îä³ÇÏØ| Ä«Öñ¹¤¿¨ÏØ| ¼ªÄ¾Èø¶ûÏØ| ËÄ×ÓÍõÆì| ÎÐÑôÏØ| ±¦ÛæÇø| ÉñÄ¾ÏØ| Ðû³ÇÊÐ| ½úÖÝÊÐ| ÏØ¼¶ÊÐ| ÈÙ³ÉÊÐ| ÄÏͶÊÐ| ÆÖÏØ| Î÷²Ø| ÆÖ³ÇÏØ| Û²³ÇÏØ| ÂéÀõÆÂÏØ| äµÔ´ÏØ| ½ðÉ½Çø| ÓÀÌ©ÏØ| Í¨É½ÏØ|