Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÚ Eclipse ÏÂÀûÓà gradle ¹¹½¨ÏµÍ³
 
»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-09-29
  3416  次浏览      27
 

¹¹½¨ÏµÍ³Ê±ºò³£³£ÒªÓõ½ Ant, Maven µÈ¹¤¾ß£¬¶ÔÓÚ³õѧÕßÀ´Ëµ£¬ËüÃÇ»¹ÊǹýÓÚ¸´ÔÓ£¬ÉÏÊÖ»¹ÊÇÐèҪʱ¼äµÄ¡£±¾ÎĽ«Ïò¶ÁÕß½éÉÜÒ»ÖÖÈ«ÐµĹ¹½¨ÏîÄ¿µÄ·½Ê½ gradle£¬Ëü¼òµ¥¡¢ÉÏÊֿ죬ÄÜ´ó´ó½ÚÊ¡ÏîÄ¿µÄʱ¼äºÍ³É±¾¡£

ÔÚ eclipse ÏÂÀûÓà gradle ¹¹½¨ÏµÍ³

»ù±¾¿ª·¢»·¾³

²Ù×÷ϵͳ£º±¾½Ì³ÌʹÓõÄΪ Windows Vista Enterprise, Èç¹ûÄúµÄϵͳÊÇ Linux µÄ£¬ÇëÑ¡ÔñÏÂÔØ¶ÔÓ¦°æ±¾µÄÆäËû¹¤¾ß£¬°üÀ¨¿ª·¢¹¤¾ß¡¢Java EE ·þÎñÆ÷¡¢Apache Ant¡¢SoapUI¡£

¿ª·¢¹¤¾ß£ºEclipse IDE for SOA Developers °æ±¾£¬Çëµ½ http://www.eclipse.org/downloads/ ÍøÕ¾ÏÂÔØ£¬µ±È»Èκΰ汾µÄ eclipse ¶¼ÊÇ¿ÉÒԵġ£

Java EE ·þÎñÆ÷£ºApache-Tomcat-6.0.18£¬¿ÉÒÔµ½ http://tomcat.apache.org/download-60.cgi ÏÂÔØ£¬Ê¹Óà 5.0 ÒÔÉϵÄÈκΰ汾¶¼¿ÉÒԵ쬵±È»£¬ÄúÒ²¿ÉÒÔʹÓà Jboss µÈÆäËû Java EE ·þÎñÆ÷¡£

Jdk£ºµ½ http://java.sun.com ÏÂÔØ 1.5.0_17 °æ±¾£¬ÏÂÔØºó°²×°¼´¿É¡£

Ant£¬Maven£¬Gradle ¼òµ¥±È½Ï

Ant ÊÇÎÒÃǹýÈ¥¹¹½¨ÏµÍ³»ù±¾¶¼»áÓõ½µÄ£¬xml ½Å±¾ÎļþÖаüÀ¨Èô¸É task ÈÎÎñ£¬ÈÎÎñÖ®¼ä¿ÉÒÔ»¥ÏàÒÀÀµ£¬¶ÔÓÚÒ»¸ö´óµÄÏîÄ¿À´Ëµ£¬ÕâЩ xml Îļþά»¤ÆðÀ´µÄÈ·²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇ飬»¹ÓÐÄÇЩÏîÄ¿ÒÀÀµµÄ¶øÃ»Óа汾ºÅµÄ jar °ü£¬ÓÐÊ±ÕæµÄÈÃÈËÍ·ÌÛ£¬ºóÀ´ Maven ³öÏÖÁË£¬»ùÓÚÖÐÑë²Ö¿âµÄ±àÒëÏà¶ÔÓÚ Ant À´ËµµÄÈ·ÊǺÃÁ˺ܶ࣬µ«ÊÇ£¬ÊDz»ÊÇ Ant,Maven ¾ÍÊÇÎÒÃǹ¹½¨ÏîÄ¿µÄΨһѡÔñÄØ£¿ºÇºÇ£¬µ±È»²»ÁË£¬ÀûÓà Gradle À´¹¹½¨ÏµÍ³ÎÒÈÏΪ½«³ÉΪ java ¹¹½¨ÏîÄ¿µÄ×î¼ÑÑ¡Ôñ£¬¼òµ¥£¬¿ìËÙ£¬¶Ô³õѧÕßÎÞ¿Á¿ÌÒªÇ󣬿ÉÒÔ˵ÊÇÄÃÀ´¾Í»áÓ㬶øÇÒÎÒÃÇÔÙÒ²²»Óÿ´ÄÇЩÈß³¤¶ø¸´Ô xml ÎļþÁË£¬ÒòΪ Gradle ÊÇ»ùÓÚ Groovy ÓïÑԵģ¬Groovy ´ó¼ÒÓ¦¸ÃºÜÊìϤ°É£¬ÊÇ»ùÓÚ Java Virtual Machine µÄÃô½Ý¿ª·¢ÓïÑÔ£¬Ëü½áºÏÁË Python¡¢Ruby ºÍ Smalltalk µÄÐí¶àÇ¿´óµÄÌØÐÔ£¬Èç¹ûÄãÊÇÒ»¸ö Ant µÄÍêȫ֧³ÖÕߣ¬Ò²Ã»ÓÐÎÊÌ⣬ÒòΪ Gradle ¿ÉÒÔºÜÆ½»¬µÄÀ´µ÷Óà Ant ÎļþµÄ£¬ÎÒÕâÑù˵Äã¿ÉÄܲ»½ÓÊÜ Gradle£¬ÏÂÃæÎÒÃǾͻáͨ¹ýÒ»¸ö¸ö¾ßÌåʵÀýÀ´½²½â Ant,Maven,Gradle ¹¹½¨ÏîÄ¿µÄ¹ý³Ì£¬Í¨¹ýÀý×ÓÎÒÃÇÄܺÜÈÝÒ×Ã÷°×ËüÃǵIJîÒì¡£Let ¡¯ s go¡£

Óà Ant À´¹¹½¨¼òµ¥ÏµÍ³

н¨Ò»¸ö Java project, ÃüÃûΪ ant_project

ͼ 1. н¨ ant_project ÏîÄ¿

package org.ant.test; 

 public class HelloWorld { 
	 public String sayHello(String name){ 
		 return "Hello "+name; 
	 } 
 }

È»ºóÔÙн¨Ò»¸ö build Îļþ£¬ÃüÃûΪ build.xml, ÄÚÈÝÈçÇåµ¥ 3 Ëùʾ£º

Çåµ¥ 2. build.xml

 <?xml version="1.0" encoding="UTF-8"?> 
<project name="project" default="default">
<target name="default" depends="depends" description="description">
<javac srcdir="src" destdir="bin" includes="org/**"></javac>
<jar basedir="bin" destfile="dist/ant_project.jar"></jar>
<war destfile="dist/ant_project.war" webxml="WEB-INF/web.xml">
<classes dir="bin"></classes>
</war>
</target>
<!-- - - - - - - - - - - - - - - - - -
target: depends
- - - - - - - - - - - - - - - - - -->
<target name="depends">
</target>
</project>

ÊìϤ ant µÄͬѧÃǶÔÓÚÉÏÃæµÄ½Å±¾Ó¦¸ÃºÜÈÝÒ׿´Ã÷°×£¬ÕâÀï¾Í²»Ïêϸ½âÊÍÁË£¬Ö÷Òª¹¦ÄܾÍÊǰÑÕâ¸ö¹¤³Ì±àÒëÈ»ºó´ò³É jar ºÍ war °ü¡£ µ½Ä¿Ç°ÎªÖ¹ ant_project µÄĿ¼½á¹¹Èçͼ 2 Ëùʾ£º

ͼ 2. ant_project ¹¤³ÌĿ¼½á¹¹

ÔËÐÐ ant ½Å±¾¡£

E:\gdcc\tools\apache-ant-1.6.5\bin\ant -f  E:\ws_IBM\ant_project\build.xml 

×¢£ºant ·ÅÔÚÁË E:\gdcc\tools\apache-ant-1.6.5 Ŀ¼Ï¡£
Ö´Ðнá¹ûÈçÏ£º
Buildfile: E:\ws_IBM\ant_project\build.xml
depends:
default:
[javac] Compiling 1 source file to E:\ws_IBM\ant_project\bin
[jar] Building jar: E:\ws_IBM\ant_project\dist\ant_project.jar
[war] Building war: E:\ws_IBM\ant_project\dist\ant_project.war
BUILD SUCCESSFUL
Total time: 859 milliseconds

ÕâÊǸö·Ç³£¼òµ¥µÄ¹¤³Ì£¬ÎÒÃǽ«Ëû´ò³ÉÁË jar£¬war °ü£¬ËùÐèÒªµÄ build Îļþ´óÔ¼ÔÚ 10 ÐÐ×óÓÒ£¬ÏÂÃæÎÒÃÇÔÙ¿´¿´Óà Gradle µÄÇé¿ö¡£

Óà Gradle À´¹¹½¨¼òµ¥ÏµÍ³

×¼±¸»·¾³£º

ÏÂÔØ gradle-0.9-preview-1 ´Ó http://dist.codehaus.org/gradle/?ref=darwinports.comÍøÕ¾ÉÏÑ¡ÔñÒ»¸ö°æ±¾£¬È»ºó½âѹµ½Ö¸¶¨Ä¿Â¼£¬½« Gradle µÄ bin Ŀ¼Ìí¼Óµ½ Path ±äÁ¿ÖС£

ʹÓà cmd ÃüÁȻºóÇÃÈë gradle ¨C version£¬Èç³öÏÖÒÔÏÂÐÅÏ¢£¬±íʾ»·¾³ÅäÖóɹ¦¡£

C:\Documents and Settings\suchu>gradle -version 
Gradle 0.9-preview-1
Gradle buildtime: Monday, March 29, 2010 4:51:14 PM CEST
Groovy: 1.7.1
Ant: Apache Ant version 1.8.0 compiled on February 1 2010
Ivy: 2.1.0
Java: 1.6.0_12
JVM: 11.2-b01
JVM Vendor: Sun Microsystems Inc.

×¢£ºÒÔÉÏÐÅÏ¢¸ù¾Ý²»Í¬°æ±¾µÄ Gradle »òÕß²»Í¬µÄ»·¾³Ò²Ðí²»Í¬£¬µ«¶¼ÊÇÕýÈ·µÄ¡£

Gradle ³£ÓõÄʹÓ÷½·¨½éÉÜ

н¨Ò»¸ö Java project, ÃüÃûΪ gradle_project

ͼ 3. н¨ gradle_project ÏîÄ¿

È»ºóн¨Ò»¸ö java bean ÃûΪ HelloWorld ÄÚÈݺÍÉÏÃæµÄÒ»Ñù£¬¿ÉÒԲο¼ ant_project¡£ ΪÁËʵÏÖ±àÒ룬´ò°ü¹¦ÄÜ£¬ÎÒÃÇÐèҪн¨Ò»¸öÃûΪ build.gradle µÄÎļþ¡£ ÎļþÄÚÈݼûÇåµ¥ 3 Ëùʾ£º

Çåµ¥ 3. build.gradle ÄÚÈÝ

apply plugin: 'java'

ÊDz»ÊǺܾªÑÈ£¬µÄÈ·£¬ÕæµÄ¾ÍÖ»ÒªÕâô¶Ì¶ÌµÄÒ»ÐУ¬¶øËüµÄ¹¦ÄÜÈ´ÊÇÏ൱µÄÇ¿´óµÄ£¬ÄܱàÒ룬´ò³É jar °ü£¬ÔËÐвâÊԽű¾µÈ¡£ µ½Ä¿Ç°ÎªÖ¹£¬ÏîÄ¿µÄ½á¹¹Èçͼ 4 Ëùʾ£º

ͼ 4. gradle_project ÏîÄ¿½á¹¹Í¼

ÕâÀïÐèҪעÒâÒ»µãµÄÊÇ£¬ÏîÄ¿°üµÄ½á¹¹×îºÃÊǰ´ÕÕ Gradle ÆÚÍûµÄÀ´½¨Á¢£¬µ±È»Ò²¿ÉÒÔͨ¹ýÅäÖÃÀ´¸Ä±ä¡£ ÏÂÃæÎÒÃÇÀ´ÔËÐÐÏ build.gradle Îļþ¡£ ÔËÐÐ cmd ÃüÁ½øÈë gradle_project ÏîĿ·¾¶Ï£¬È»ºóÔËÐÐ gradle build ÃüÁÃüÁîÏÔʾÐÅÏ¢ÈçÇåµ¥ 5 Ëùʾ¡£

Çåµ¥ 5. build.gradle ÔËÐÐÏÔʾÐÅÏ¢

E:\ws_IBM\gradle_project>gradle build 
 :compileJava 
 :processResources 
 :classes 
 :jar 
 :assemble 
 :compileTestJava 
 :processTestResources 
 :testClasses 
 :test 
 :check 
 :build 

 BUILD SUCCESSFUL 

 Total time: 5.125 secs 

ÎÒÃÇÔÙ¿´ÏÂÉú³ÉÎÕâ¸öÃüÁîÊ×ÏÈÔÚ gradle_project ÏÂн¨ÁË build Ŀ¼£¬build Ŀ¼°üº¬ classes, dependency-cache, libs,tmp ËĸöĿ¼£¬libs ϰüº¬ jar °ü£¬jar °ü°üº¬ main ϵÄËùÓÐ java ÎļþºÍºÍ×ÊÔ´Îļþ¡£ Ò»¸ö¼òµ¥µÄÀý×Óµ½ÕâÀï¾ÍÑÝʾÍêÁË£¬ÔõôÑùÊDz»Êǽű¾ºÜ¼ò½à£¬ÓÃÆðÀ´ºÜ¼òµ¥£¬²úÉúÏë¼ÌÐøÑ§Ï°µÄÐËȤÁ˰ɣ¬±ð¼±£¬ÏÂÃæÎÒÃÇ»á¼ÌÐøÀ´Ì½¾¿ Gradle µÄÉñÆæÖ®´¦¡£

ÏÂÃæÎÒÃÇÀ´½éÉܼ¸¸ö³£ÓõÄÃüÁclean£¬Õâ¸öÃüÁîÊǽ«¸Õ²Å²úÉúµÄ build Ŀ¼ɾ³ýµô£» Assemble£¬Õâ¸öÃüÁîÊDZàÒë java Îļþµ«ÊDz»ÔËÐмì²é´úÂëÖÊÁ¿µÈµÄÃüÁÔËÐÐʱÏÔʾµÄÐÅÏ¢ÈçÇåµ¥ 6 Ëùʾ£º

Çåµ¥ 6. assemble ÃüÁîÏÔʾµÄÐÅÏ¢

E:\ws_IBM\gradle_project>gradle assemble 
 :compileJava 
 :processResources UP-TO-DATE 
 :classes 
 :jar 
 :assemble 

 BUILD SUCCESSFUL

ºÍÇåµ¥ 5 ±È½ÏÏ£¬ËûÃǵÄÇø±ðÓ¦¸ÃºÜÈÝÒ׿´³öÀ´£¬ÄÇôÎÒÃÇÔõôÑùÀ´ÔËÐмì²é´úÂëÖÊÁ¿µÄÃüÁî¶ø²»ÐèÒª´ò³É jar °üÖ®ÀàµÄ¶îÍ⹤×÷ÄØ£¬check ÃüÁîÕýºÃÂú×ãÄãµÄÒªÇ󣬴ËÃüÁî¾ÍÊDZàÒë java Îļþ²¢ÔËÐÐÄÇЩÀàËÆ Checkstyle£¬PMD µÈÍⲿ²å¼þÃüÁîÀ´¼ì²éÎÒÃÇ×Ô¼ºµÄÔ´´úÂë¡£Check ÃüÁîÔËÐÐÏÔʾµÄÐÅÏ¢ÈçÇåµ¥ 7 Ëùʾ£º

Çåµ¥ 7. check ÃüÁîÔËÐÐʱÐÅÏ¢

E:\ws_IBM\gradle_project>gradle check 
 :compileJava UP-TO-DATE 
 :processResources UP-TO-DATE 
 :classes UP-TO-DATE 
 :compileTestJava UP-TO-DATE 
 :processTestResources UP-TO-DATE 
 :testClasses UP-TO-DATE 
 :test UP-TO-DATE 
 :check UP-TO-DATE 

 BUILD SUCCESSFUL

ÕâÀïÐèҪ˵Ã÷Ò»µãµÄÊÇ Gradle ÊÇÔöÁ¿Ê½±àÒëµÄ£¬Ö»±àÒëÄÇЩÓб䶯µÄ java Àà»ò×ÊÔ´ÎļþµÄ£¬Èç UP-TO-DATE ±íʾÊÇÓиüеġ£ ÏÖÔÚ javadoc Ô½À´Ô½Êܵ½ÈËÃǵÄÖØÊÓ£¬ÓÈÆä¶ÔÓÚÄÇЩ¸´ÔÓµÄÐèÒª½Ó¿Úµ÷ÓõĵÄÏîÄ¿£¬javadoc µÄµØÎ»¾Í¸ü¼ÓÍ»³öÁË£¬Èç¹ûÎÒÃÇʹÓà Ant ÐèÒªÔÚ build ÎļþÖÐÔö¼ÓÇåµ¥ 8 µÄƬ¶Î¡£

Çåµ¥ 8. ÀûÓà Ant Éú³É javadoc

 <target name="javadoc"> 
<!-- destdir ÊÇ javadoc Éú³ÉµÄĿ¼λÖà -->
<javadoc destdir="${distDir}" encoding="UTF-8" docencoding="UTF-8">
<!-- dir ÊÇÄãµÄÔ´´úÂëλÖ㬼ÇסÊÇ java ÎļþµÄλÖöø²»ÊÇ class ÎļþµÄλÖã¬
µÚÒ»´ÎÓÃÕâ¸öÃüÁîÈÝÒ׺öÂÔÕâµã ÇÐ¼Ç -->
<packageset dir="${srcDir}">
<!-- exclude ÊÇÈ¥µôÄÇЩ²»ÏëÉú³É javadoc µÄÀàÎļþ -->
<exclude name="${excludeClasses}" />
</packageset>
</javadoc>
</target>

È»ºóÎÒÃÇÓà ant javadoc ÃüÁîÀ´ÔËÐУ¬¼´¿ÉÉú³É javadoc¡£ÄÇôÎÒÃÇ ÀûÓà Gradle ÊÇÔõÑùÀ´Éú³É javadoc µÄÄØ£¬¶¼ÐèÒª×öÄÇЩ¶îÍâµÄ¹¤×÷ÄØ£¿ build.gradle ÎļþÊÇ·ñÐèÒªÐÞ¸ÄÄØ£¿ÎÒÃǵĻشðÊÇ£¬²»Óã¬Ê²Ã´¶¼²»ÓÃÐ޸ģ¬Ê²Ã´¶¼²»ÓÃ×ö£¬Ö»ÐèÀûÓà gradle javadoc ÃüÁ¼´¿ÉÉú³ÉÎÒÃÇÆÚÍûµÄ javadoc¡£ ͨ³£ÎÒÃÇн¨Ò»¸öÏîÄ¿£¬.classpath ÎļþµÄÄÚÈÝÈçÇåµ¥ 9 Ëùʾ£º

Çåµ¥ 9. .classpath ÎļþÄÚÈÝ

 <?xml version="1.0" encoding="UTF-8"?> 
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER
/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_12"/>
<classpathentry kind="output" path="bin"/>
</classpath>

ͨ¹ýÉÏÃæµÄ֪ʶÎÒÃÇÖªµÀ£¬Gradle ÆÚÍûµÄĿ¼½á¹¹ºÍ×Ô¶¯Éú³ÉµÄÊÇÓÐЩ²î±ðµÄ£¬±ÈÈçÔ´Âë·¾¶£¬±àÒëºóµÄÎļþ·ÅÖÃĿ¼µÈ£¬ÄÇôÎÒÃÇÄܲ»ÄÜͨ¹ý Gradle ÃüÁîÀ´Í³Ò»Ò»ÏÂÄØ£¬Ê¹Ô­ÏîÄ¿½á¹¹Óë Gradle ÆÚÍûµÄÒ»Ö£¬ÒÔÃ⿪·¢Õß½«´úÂë·ÅÖõ½ÁË´íÎóµÄĿ¼½á¹¹Ï£¬ÄÇÑù Gradle ÊDz»¹ÜÀíËüÃǵġ£ÏÂÃæÎÒÃǾÍͨ¹ýÒ»¸ö¼òµ¥µÄ·½·¨À´ÊµÏÖÉÏÃæµÄÐèÇó£¬Ê×ÏÈÎÒÃÇÀ´¼òµ¥ÐÞ¸ÄÏ build.gradle Îļþ£¬Ìí¼Ó apply plugin: 'eclipse'ÕâôһÐУ¬È»ºóÎÒÃÇʹÓÃÃüÁî gradle eclipse ¼´¿É¡£.classpath ÎļþµÄ±ä»¯ÈçÇåµ¥ 9 Ëùʾ¡£

Çåµ¥ 9. Ð޸ĺóµÄ .classpath ÎļþÄÚÈÝ

 <?xml version="1.0" encoding="UTF-8"?> 
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="output" path="build/classes/main"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>

War °üÊÇÎÒÃǾ­³£ÒªÓõ½µÄ£¬ÉÏÃæÎÒÃÇÀûÓà Ant ½Å±¾Éú³É¹ý war °ü£¬ÄÇô Gradle ÓÖÊÇÔõÑùÀ´Éú³É war °üµÄÄØ£¿¾­¹ýÉÏÃæµÄѧϰ»òÐíÄãÒѾ­²Â³öÀ´ÁË£¬ÐèÒªÔö¼ÓÒ»¸ö plugin£¬ÍêÈ«ÕýÈ·£¬Ö»ÐèÒª½« apply plugin: 'war' ÕâÒ»ÐмÓÈëµ½ build.gradle ÎļþÖУ¬È»ºóÔËÐÐ gradle War ÃüÁî¼´¿É£¬¼òµ¥µÄ¼òÖ±ÒªÃü£¬ÊDz»ÊÇ£¬ºÇºÇ£¡

ÈçºÎÔÚÀÏÏîÄ¿ÉÏʹÓà Gradle

ÎÒÃÇÉÏÃæ½²¹ý£¬Gradle ¶ÔÆäËùÄÜ¿ØÖƵÄĿ¼½á¹¹ÊÇÓÐÒ»¶¨µÄÒªÇóµÄ£¬ÄÇôÈç¹ûÎÒÃǵÄÏîÄ¿ÒѾ­¿ªÊ¼ºÜ³¤Ê±¼äÁË£¬ÏÖÔÚµÄÏîÄ¿½á¹¹²»Âú×ã Gradle µÄÒªÇó£¬ÄÇôÎÒÃÇ»¹Äܲ»ÄÜÀûÓà Gradle ÄØ£¿´ð°¸µ±È»Êǿ϶¨µÄ£¬ÏÂÃæÎÒÃǾͽéÉÜÔõÑùÔÚÀÏÏîÄ¿ÉÏʹÓà Gradle£¬·½·¨ºÜ¼òµ¥£¬µ±È»Èç¹û¹ýÓÚ¸´ÔÓÎÒÃÇҲû±ØÒªÔÙÕâÀï½éÉÜËüÁË£¬Ö±½ÓʹÓà Ant ¾ÍºÃÁË¡£Ê×ÏÈÎÒÃÇÐèÒªÔÚ build.gradle ÎļþÖÐÔö¼ÓÈçÇåµ¥ 10 ËùʾµÄÄÚÈÝ¡£

Çåµ¥ 10. Æ¥ÅäÀÏÏîÄ¿µÄ½á¹¹

sourceSets { 
main {
java.srcDir "$projectDir/src"
}
}

È»ºóÎÒÃǾͿÉÒÔʹÓà Gradle ÌṩµÄËùÓÐÃüÁîºÍ·½·¨ÁË¡£

ÈçºÎ¼ÓÈëÏîÄ¿ËùÒÀÀµµÄ jar °ü

´ó¼Ò¶¼ÖªµÀ£¬Ò»¸öÏîÄ¿ÔÚ±àÒë¹ý³ÌÖÐÒªÒÀÀµºÜ¶à jar °üµÄ£¬ÔÚ Ant ÖÐÎÒÃÇͨ¹ýÌí¼Ó classpath À´ÊµÏֵģ¬ÈçÇåµ¥ 11 Ëùʾ¡£

Çåµ¥ 11. ant ÖÐÌí¼ÓÒÀÀµµÄ jar °ü

<path id="j2ee"> 
<pathelement location="${servlet.jar}" />
<pathelement location="${jsp-api.jar}" />
<pathelement location="${ejb.jar}" />
<pathelement location="${jms.jar}" />
</path>
<javac destdir="${build.classes}" srcdir="${src.dir}" debug="${javac.debug}"
deprecation="${javac.deprecation}">
<include name=" "/>
<classpath refid="j2ee"/>
</javac>

ÄÇô Gradle ÓÖÊÇÔõÑùÀ´×öµÄÄØ£¿Í¨¹ýÉÏÃæµÄ֪ʶµÄѧϰ£¬ÄãÊÇ·ñÓÐÒ»¸ö´ó¸ÅµÄË¼Â·ÄØ£¿¼ÙÈçÎÒÃÇÏÖÔÚÓÐÒ»¸ö java Àà½Ð HelloWorldTest£¬Õâ¸öÀàÖÐÒýÓÃÁË junit Õâ¸ö jar °üÖеÄÀ࣬ÕâʱºòÎÒÃÇÓà Gradle ÒªÔõÑùÀ´±àÒëÕâ¸öÀàÄØ£¿ Ê×ÏÈÎÒÃÇн¨Ò»¸öĿ¼½Ð libs£¬Õâ¸öĿ¼¾ÍÊÇ·ÅÖÃÏîÄ¿ËùÒÀÀµµÄËùÓÐ jar °ü£¬µ±È»°üÀ¨ HelloWorldTest ÀàËùÒÀÀµµÄ junit-4.4.jar °ü£¬È»ºóÎÒÃÇÒªÐÞ¸ÄÏ build.gradle Îļþ£¬Ôö¼ÓÄÚÈݼûÇåµ¥ 12¡£

Çåµ¥ 12. ¹¤³ÌËùÒÀÀµ jar °üÌí¼Ó·½·¨

repositories { 
flatDir(dirs: "$projectDir/libs")
}
dependencies {
compile ':junit:4.4'
}

×¢£ºrepositories Ï൱һ¸ö´æ´¢ jar °üµÄ²Ö¿â£¬ÎÒÃÇ¿ÉÒÔÖ¸¶¨±¾µØµÄÒÀÀµ jar °ü£¬Ò²¿ÉÒÔÀûÓà Maven ËùÖ¸¶¨µÄ²Ö¿â£¬Èç mavenCentral()£» ͨ¹ý dependencies À´°üº¬ËùÓÐÕæÕýÒªÒÀÀµµÄ jar °ü£¬¸ñʽΪ goup£ºname£ºversion£¬':junit:4.4:' ¾ÍÊDZíʾ dirs ·¾¶Ï嵀 junit-4.4.jar Õâ¸ö°ü¡£

ÈçºÎʵÏÖ copy ¹¤×÷

Copy ÊÇÎÒÃǾ­³£ÒªÓõ½µÄÒ»¸öÃüÁjava ÀàµÄ copy£¬×ÊÔ´ÎļþµÄ copy µÈµÈ¡£Èç¹ûÊÇ Ant ÎÒÃÇ»áÔÚ build.xml ÎļþÖмÓÈëÇåµ¥ 13 ÖеÄÄÚÈÝ¡£

Çåµ¥ 13. Ant ÖÐµÄ copy ÈÎÎñ

¸´ÖƵ¥¸öÎļþµ½ÁíÒ»¸öÎļþ
<copy file="myfile.txt" tofile="mycopy.txt"/>
¸´ÖƵ¥¸öÎļþµ½Ò»¸öĿ¼
<copy file="myfile.txt" todir="../some/other/dir"/>
¸´ÖÆÒ»¸öĿ¼µ½ÁíÒ»¸öĿ¼
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
¸´ÖÆÒ»²¿·ÖÎļþµ½Ò»¸öĿ¼ÏÂ
<copy todir="../dest/dir">
<fileset dir="src_dir">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy todir="../dest/dir">
<fileset dir="src_dir" excludes="**/*.java"/>
</copy>

ÎÒÃÇÖªµÀ copy ÈÎÎñÖÐÓкܶàÊôÐÔ£¬ÕâÀïÎÒÃǾͲ»Ò»Ò»ÁгöÁË£¬ÎÒÃÇ»¹ÊÇÖ÷Òª¿´Ï Gradle ÊÇÈçºÎÀ´ÊµÏÖÕâЩ¹¦Äܵġ£

ʹÓà Gradle ʵÏÖĿ¼֮¼ä copy ÎļþÈÎÎñ

ÎÒÃÇÖ»ÐèÒªÔÚ build.gradle ÎļþÖмÓÈëÇåµ¥ 14 ÖеÄÄÚÈÝ¡£

Çåµ¥ 14. gradle ÖÐʵÏÖĿ¼¼ä¸´ÖÆÎļþ

task copyOne(type: Copy) { 
from 'src/main/test'
into 'build/anotherDirectory'
}

×¢£º°Ñ test Ŀ¼ÏµÄËùÓÐÎļþ¸´ÖƵ½ anotherDirectory Ŀ¼Ï¡£ È»ºóÎÒÃÇÀûÓÃÃüÁî E:\ws_IBM\gradle_project>gradle copyOne À´Ö´Ðм´¿É¡£

¶Ô copy ÎļþµÄ¹ýÂË

ÓÐʱºòÒ»¸öĿ¼ÏµÄÎļþÊýÄ¿ºÜ¶à£¬¶øÎÒÃÇÖ»Ïë¸´ÖÆÄ³Ò»²¿·ÖÎļþ£¬±ÈÈçÖ»¸´ÖÆ java Îļþ»ò×ÊÔ´ÎļþµÈ£¬ÕâʱºòÎÒÃǾÍÒªÓõ½ copy ÈÎÎñµÄ include ÊôÐÔ£¬ÕâÒ»µãºÍ Ant ÊÇÒ»ÑùµÄ¡£±ÈÈçÖ»¸´ÖÆ java Îļþµ½Ä³Ò»Ö¸¶¨Ä¿Â¼£¬ÊµÏÖÕâ¸öÐèÇóÎÒÃÇÒªÔÚ build.gradle ÎļþÖÐÔö¼ÓÇåµ¥ 15 µÄÄÚÈÝ¡£

Çåµ¥ 15. copy java Îļþµ½Ö¸¶¨Ä¿Â¼

task copyTwo(type: Copy) { 
from 'src/main/test'
into 'build/anotherDirectory'
include '**/*.java'
}

Èç¹ûÎÒÃÇÖ»ÏëÅųýһЩÎļþ£¬²»Ïë°ÑÕâÒ»ÀàÎļþ copy ¹ýÈ¥£¬ÕâʱºòÎÒÃÇÒªÓõ½ exclude ÊôÐÔ£¬±ÈÈçÎÒÃDz»Ïë°Ñ java Îļþ¸´ÖƵ½Ö¸¶¨Ä¿Â¼ÖУ¬ÄÇôÎÒÃÇÖ»ÐèÒª½«ÉÏÃæÇåµ¥ 15 ÖÐµÄ include Ìæ»»³É exclude ¼´¿É¡£

·¢²¼ jar Îļþ

×öÏîĿʱ¾­³£»áÓöµ½Ò»¸ö project ÖеÄÀàÒÀÀµÁíÒ»¸ö project ÖÐÀàµÄÇé¿ö£¬Èç¹ûÓà Ant£¬ÎÒÃÇ»áÕâÑù×ö£¬Ê×ÏȽ«±»ÒÀÀµµÄÀàÎļþ´ò³É jar °ü£¬È»ºóÀûÓà copy ÃüÁÕâ¸ö jar °ü¸´ÖƵ½Ö¸¶¨Ä¿Â¼Ï£¬ÎÒÃÇ¿ÉÒÔÏëÏóµ½ÒªÏò build.xml Ìí¼ÓºÃ¶àÐдúÂ룬ÕâÀïÎÒÃǾͲ»Ò»Ò»ÁгöÁË£¬²»»áµÄͬѧÃÇ¿ÉÒԲο¼ÉÏÃæµÄ֪ʶ¡£ÏÂÃæÎÒÃÇ¿´Ï Gradle ÊÇÔõÑùÀ´Íê³ÉÕâÒ»ÐèÇóµÄ£¬Gradle ²»µ«¿ÉÒÔ½² jar °ü·¢²¼µ½±¾µØµÄÖ¸¶¨Ä¿Â¼ÖУ¬¶øÇÒ»¹¿ÉÒÔ·¢²¼µ½Ô¶³ÌĿ¼ÖУ¬ÎÒÃÇ¿´ÏÂÇåµ¥ 16 µÄÄÚÈÝ¡£
Çåµ¥ 16. ·¢²¼ jar °üµ½±¾µØÄ¿Â¼

 publishJarFile { 
repositories {
flatDir(dirs: file('jarsDerectory'))
}
}

È»ºóÎÒÃÇÀûÓà gradle publishJarFile ÃüÁî¼´¿É¡£ ×¢£ºÇåµ¥ 16 Êǽ«¹¤³ÌÏ嵀 java ÀàÎļþÈ«²¿´ò³É jar °ü£¬È»ºó·Åµ½¹¤³ÌĿ¼Ï嵀 jarsDerectory ×ÓĿ¼ÖС£

Maven ¶ÔÓÚ jar °üµÄ²Ö¿â¹ÜÀí·½·¨¸øÎÒÃÇÌṩÁ˺ܶ෽±ã£¬Gradle ÍêÈ«¿ÉÒÔÀûÓà Maven µÄÕâÒ»ÓŵãµÄ£¬ÎÒÃÇÔÚÉÏÃæÒѾ­½²¹ýÁËÈçºÎÀ´Ê¹Óã¬ÄÇôÎÒÃÇÓÖÊÇÔõôÀ´×öµ½½«ÏîÄ¿ËùÐèÒªµÄ jar °ü¸üе½²Ö¿âÖÐÄØ£¿¾ßÌå½â¾ö·½·¨¼ûÇåµ¥ 17¡£

Çåµ¥ 17. ·¢²¼ jar Îļþµ½ Maven µÄ²Ö¿âÖÐ

apply plugin: 'maven'
publishToMaven {
repositories.mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}

Gradle ÔÚ¶à¸ö¹¤³ÌÖеÄÓ¦ÓÃ

×öÏîĿʱºò£¬¾­³£»áÅöµ½¶à¸ö¹¤³ÌµÄÇé¿ö£¬×îͨ³£µÄÇé¿öÎÒÃÇÒ²·ÖΪ·þÎñÆ÷¶ËºÍ¿Í»§¶ËÁ½²¿·Ö£¬ÕâÖÖÇé¿öÎÒÃǹýÈ¥Óà Ant ʱºò»áÔÚÿ¸ö¹¤³ÌÏÂÃæ¶¼½¨Á¢¸ö build.xml Îļþ»òÕß½¨Á¢Ò»¸ö build.xml Îļþ£¬È»ºóÔÚÕâ¸ö build.xml ÎļþÖн¨Á¢²»Í¬¹¤³ÌµÄ target£¬½«½«±»ÒýÓõŤ³Ì´ò³É jar °üÀ´¹©ÆäËû¹¤³ÌÒýÓã¬ÄÇô Gradle ÊÇÔõÑùÀ´Íê³ÉÕâÑùµÄÐèÇóµÄÄØ£¿ÏÂÃæÎÒÃǾٸö¾ßÌåµÄÀý×ÓÀ´ÏêϸÑÝʾÏ¡£Ê×ÏÈÎÒÃÇн¨Ò»¸öÖ÷¹¤³ÌÃüÃûΪ gradle_multiProject, È»ºóÔÚÖ÷¹¤³ÌÏÂÔÚн¨Ò»¸ö×Ó¹¤³ÌÃüÃûΪ sub_projectOne, ÔÚÁ½¸ö¹¤³ÌÏÂÃæ¶¼ÓÐÒ»¸ö¸÷×Ô¶ÀÁ¢µÄ src ²¢ÇÒ·ûºÏ Gradle ÒªÇóµÄĿ¼½á¹¹£¬ÔÚÿ¸ö¹¤³ÌÏÂÃæ¶¼½¨¸öÀàÃüÃûΪ HelloWorld£¬ÀàÄÚÈÝͬÇåµ¥ 1. È»ºóÎÒÃÇн¨¸ö settings.gradle Îļþ£¬ÄÚÈݼûÇåµ¥ 18¡£

Çåµ¥ 18. settings.gradle ÎļþÄÚÈÝ

 include "sub_projectone"

È»ºóÔÚн¨Ò»¸öÎÒÃÇÊìϤµÄ build.gradle Îļþ£¬ÎļþÄÚÈݼûÇåµ¥ 19¡£

Çåµ¥ 19. Ö÷¹¤³ÌĿ¼Ï build.gradle ÎļþÄÚÈÝ

 Closure printProjectName = { task -> println "I'm $task.project.name" } 
task hello << printProjectName
project(':sub_projectone') {
task hello << printProjectName
}

È»ºóÎÒÃÇʹÓÃÃüÁî gradle ¨C q hello ÔËÐÐһϣ¬ÔËÐнá¹ûÈçÇåµ¥ 20 Ëùʾ¡£

Çåµ¥ 20. ÃüÁîÔËÐнá¹û

E:\ws_IBM\gradle_multiProject>gradle -q hello 
I'm gradle_multiProject
I'm sub_projectone

ÎÒÃǻᷢÏÖ£¬Õâ¸öÃüÁÖ÷¹¤³ÌºÍ×Ó¹¤³ÌµÄÃû×Ö¶¼´òÓ¡³öÀ´ÁË£¬ÎªÊ²Ã´»áÕâÑùÄØ£¿ÎÒÏëÄãÒ»¶¨²Â¶ÔÁË£¬ÒòΪÎÒÃÇÔÚ build.gradle ÎļþÖÐʹÓÃÁË project() ·½·¨£¬·½·¨ÄÚ´«ÈëµÄÊÇ×Ó¹¤³ÌµÄÃû³Æ£¬Èç¹ûÎÒÃÇ×Ó¹¤³Ì²»Ö¹Ò»¸ö£¬ÄÇôÎÒÃÇÓÖ¸ÃÔõÑùÀ´µ÷ÓÃÄØ£¿ÕâʱºòÎÒÃÇÖ»ÐèÒªµ÷ÓÃÁíÒ»¸ö·½·¨ allprojects ¼´¿É£¬×¢Òâ allprojects ·½·¨ÊDz»ÐèÒª´«Èë²ÎÊýµÄ£¬Ëü·µ»ØµÄÊǵ±Ç°¹¤³ÌºÍµ±Ç°¹¤³ÌÏÂÃæµÄËùÓÐ×Ó¹¤³ÌµÄÁÐ±í¡£ÉÏÃæÑÝʾµÄÄÚÈÝÆäʵÎÒÃDz»¾­³£Óõ½µÄ£¬ÕâÀï¼òµ¥µÄ½éÉÜϾÍÊÇΪÁË˵Ã÷ gradle ¸øÎÒÃÇÌṩÁ˺ö෽·¨À´¹©ÎÒÃǵ÷Óã¬Ôڶ๤³ÌµÄ»·¾³ÏÂÎÒÃÇ¿ÉÒÔÁé»îµÄʹÓÃËüÃÇÀ´´ïµ½ÎÒÃǵÄÒªÇó£¬ÏÂÃæÎÒÃǾͲ½ÈëÕýÌâÀ´¿´¿´Ôڶ๤³ÌÇé¿öÏ£¬gradle ÊÇÈçºÎÀ´±àÒ룬´ò°ü¸÷×Ô¹¤³ÌµÄ¡£ÕâÀïÎÒÃÇÌí¼ÓЩÄÚÈݵ½ build.gradle Îļþ£¬ÄÚÈݼûÇåµ¥ 21¡£

Çåµ¥ 21. Ìí¼Óµ½ build.gradle ÎļþÖеÄÄÚÈÝ

subprojects{ 
apply plugin: 'java'
}

È»ºóÎÒÃÇÓÃÃüÁî gradle build£¬·¢ÏÖÖ÷¹¤³ÌÏÂÃæµÄËùÓÐ×Ó¹¤³Ì¶¼ÐÂÔöÁËÒ»¸ö build Îļþ¼Ð£¬Õâ¸öÎļþ¼Ðϰüº¬±àÒëÉú³ÉµÄ class ÎļþºÍ jar Îļþ£¬¶øÖ÷¹¤³ÌµÄ src ϵĴúÂëȴûÓб»±àÒ룬´ò°ü¡£ÄÇôÎÒÃÇÔõÑù×öÄÜÈÃÖ÷¹¤³ÌºÍ×Ó¹¤³Ìͬʱ±»±àÒ룬´ò°üÄØ£¿·½·¨ºÜ¼òµ¥£¬ÎÒÃÇÖ»ÐèÒªÔÚ build.gradle ÎļþÖÐÔö¼Ó apply plugin: 'java' ÕâôһÐдúÂ룬ÏÖÔÚÍêÕûµÄ build.gradle ÄÚÈݼûÇåµ¥ 22¡£

Çåµ¥ 22. ÍêÕûµÄ build.gradle ÎļþÄÚÈÝ

apply plugin: 'java'
subprojects{
apply plugin: 'java'
}

ÊDz»ÊǺÜÄÑÏëÏ󣬾ÍÕâô¼¸ÐдúÂë¾ÍÍê³ÉÁ˽«ËùÓй¤³ÌÖеĴúÂë¶¼±àÒëÁ˲¢ÇÒ¶¼´ò³ÉÁË jar Îļþ¡£ÓеÄÅóÓÑ»áÎÊÁË£¬Èç¹û×Ó¹¤³ÌÓëÖ÷¹¤³ÌËûÃÇ´ò³ÉµÄ°ü²»Ò»Ñù£¬ÓеÄÊÇÐèÒª jar °ü£¬ÓеÄÐèÒª´ò³É war °üµÈµÈ£¬ÕâÑùµÄÐèÇóÎÒÃǸÃÔõÑù×öÄØ£¬ºÜ¼òµ¥ÎÒÃÇÖ»ÐèÒªÔÚÐèÒª´ò³É war °üµÄ¹¤³ÌÏÂÃæÐ½¨Á¢¸ö build.gradle Îļþ£¬¸ÃÎļþÄÚÈÝΪ apply plugin: 'war'£¬È»ºóÎÒÃÇÎÒÃÇÔÚÖ÷¹¤³ÌĿ¼ÏÂʹÓà gradle build ÃüÁî¼´¿ÉÉú³ÉÎÒÃÇÐèÒªµÄ war °üÁË£¬Gradle ¾ÍÊÇʹÓÃÕâÖÖ·½·¨À´Âú×ãÄÇÖÖ²îÒìÐÔµÄÐèÇóµÄ¡£

ʹÓà Ant µÄÅóÓÑÃÇÒ»¶¨»áÉîÓид¥µÄ°É£¡Ò²ÐíÓÐЩÅóÓÑ»áÓз´ÃæµÄһЩÉùÒô£¬ÓÈÆä¶ÔÄÇЩ Ant µÄÈȰ®ÕßÃÇ£¬Ò»¶¨»á˵£¬Ant Èç¹ûÄãʹÓõĺ㬷â×°µÄºÃÒ»Ñù¿ÉÒԺܼò½à²¢ÇÒÒ²ÄÜ´ïµ½Õâ¸öЧ¹ûµÄ£¬µÄÈ·ÊÇÕâÑùµÄ£¬Gradle Ö»²»¹ýÊǰÑÎÒÃǾ­³£ÒªÊ¹ÓõÄһЩ¹¦ÄÜÏî¸ø·â×°³ÉÁË·½·¨£¬È»ºóÎÒÃǵ÷ÓÃÕâЩ·½·¨¼´¿ÉÁË£¬ÔÙ˵ÁË£¬Gradle µ÷Óà Ant ½Å±¾Ò²ÊÇ¿ÉÒԵģ¬Èç¹ûÄãÒ»¶¨ÒªÓà Ant, ÄÇôÄãÓà Gradle À´×éÖ¯Ò»ÏÂÂß¼­Ò²ÊDz»´íµÄÑ¡Ôñ¡£ÏÂÃæÎÒÃǼòµ¥¿´ÏÂÔÚ Gradle ÖÐʽÔõÑùÀ´µ÷Óà Ant ½Å±¾µÄ¡£

Gradle Öе÷Óà Ant ½Å±¾

Ê×ÏÈÎÒÃǽ¨Á¢ Ant Îļþ build.xml, ÎļþÏêϸÄÚÈݼûÇåµ¥ 23.

Çåµ¥ 23. build.xml ÎļþÄÚÈÝ

 <project> 
<target name="hello">
<echo>Hello, from Ant</echo>
</target>
</project>

È»ºóÎÒÃÇÔÚ½¨Á¢¸ö build.gradle Îļþ£¬ÎļþÏêϸÄÚÈݼûÇåµ¥ 24¡£

Çåµ¥ 24. build.gradle ÎļþÄÚÈÝ

ant.importBuild 'build.xml'

¼òµ¥°É£¬Ò»¾ä»°µÄÊÂÇé¶øÒÑ£¬ºÇºÇ¡£È»ºóÎÒÃÇʹÓà gradle hello ÃüÁîÀ´¿´Ï½á¹û£¬½á¹û¼ûÇåµ¥ 25¡£

Çåµ¥ 25. Gradle µ÷Óà Ant ÎļþµÄÔËÐнá¹û

 E:\gdcc\me\gradle-0.9-preview-1\samples\userguide\ant\hello>gradle hello 
:hello
[ant:echo] Hello, from Ant

BUILD SUCCESSFUL

Total time: 9.734 secs

¿ÉÒÔ¿´³ö£¬µÄÈ·µ÷ÓõÄÊÇ Ant µÄ build.xml Îļþ°É¡£

×ܽá

±¾½Ì³Ìͨ¾ßÌåʵÀýÀ´½²½âÈçºÎʹÓà Gradle À´¹¹½¨¹¤³ÌµÄ£¬²¢ÔÚ¾ßÌåʵÀýÖÐÒýÈëÎÒÃÇÊìϤµÄ Ant À´¶Ô±ÈÍê³É£¬ÕâÑùÄÜʹ Ant µÄ°®ºÃÕßÃÇÄܸü¿ìµÄÉÏÊÖ£¬²¢ÄÜһĿÁËÈ»µÄ¿´µ½Á½ÕßµÄÓÅȱµã£¬×îºó²¢½²½âÁËÔõÑùºÍ Ant À´¼¯³É£¬Ã¿Ò»¸öʵÀý¶¼ÊÇͨ¹ý´Óн¨¹¤³Ì¿ªÊ¼Ò»²½Ò»²½µÄ´øÁì´ó¼ÒÀ´¼ÌÐøµÄ£¬ÎÒÃÇÖªµÀ½ö½öͨ¹ýһƬÎÄÕÂÀ´ºÜÏêϸµÄ½« Gradle µÄ·½·½ÃæÃæ¶¼²ûÊöµÄºÜÇå³þ£¬ÄÇÊDz»¿ÉÄܵ쬱¾½Ì³ÌÌṩÁË×î»ù±¾£¬×î»ù´¡µÄ¿ª·¢¹ý³Ì£¬Èκθ´ÔÓµÄÊÂÎñ¹é¸ù½áµ×»¹ÊÇÔ´ÓÚ»ù´¡£¬ÎÒÒ»Ïò³«µ¼£¬¡°ÊÚÖ®ÒÔÓ㣬²»ÈçÊÚÖ®ÒÔÓæ¡±£¬ÎÒÏëÖ»Òª·½Ïò¶ÔÁË£¬ÖªµÀÈçºÎÏÂÊÖÁË£¬¾Í²»»áÓдóµÄʧÎó¡£×îºó×£´ó¼Ò¹¤×÷˳Àû¡£

   
3416 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
ÏîÄ¿¹ÜÀí:MavenÈÃÊÂÇé±äµÃ¼òµ¥
³ÖÐø¼¯³É¹¤¾ßhudson
³ÖÐø¼¯³É
MavenȨÍþÖ¸ÄÏ
³ÌÐò¼¯(UMLÖеİü)Ö®¼äÑ­»·


²úÆ··¢²¼¹ÜÀí
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ß
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
ʹÓÃCCÓëCQ½øÐÐÏîĿʵ¼ù
CVSÓëÅäÖùÜÀí
Subversion¹ÜÀíÔ±


º£º½¹É·Ý ÖØ¹¹¼°³ÖÐø¼¯³É
µçÑлªÔ´ Éè¼ÆÔ­Àí¡¢½¨Ä£ÓëÖØ¹¹
Èí¼þÅäÖùÜÀíÈÕ¹¹½¨¼°³ÖÐø¼¯³É
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
ÖйúÈí¼þÑз¢ÖÐÐÄ µ¥Ôª²âÊÔÓëÖØ¹¹
µ¥Ôª²âÊÔ¡¢Öع¹ºÍ³ÖÐø¼¯³Éʵ¼ù
ÂÞ¿ËΤ¶û C++µ¥Ôª²âÊÔ+ÖØ¹¹+Gtest