MavenÃæÁÙµÄÌôÕ½
Èí¼þÐÐҵоɽ»ÌæµÄËÙ¶ÈÖ®¿ìÍùÍùÁîÈË߯É࣬²»ÓöàÉÙʱ¼ä£¬Äã¾Í»á·¢ÏÖÔø¾´óºì´ó×ϵļ¼ÊõÒѾ³ÉΪÁË×òÈջƻ¨£¬µ±È»£¬MavenÒ²²»»áÀýÍâ¡£ËäȻĿǰËü»ù±¾ÉÏÊÇJava¹¹½¨µÄÊÂʵ±ê×¼£¬µ«ÎÒÃÇÒ²ÄÜ¿´µ½ÐÂÐ˵Ť¾ßÔÚÓ¿ÏÖ£¬±ÈÈç»ùÓÚGoovyµÄGradle£¬¶øÈ¥ÄêHibernateÐû²¼´ÓMavenÇ¨ÒÆÖÁGradleÕâһʼþ¸üÊÇÎüÒýÁ˲»ÉÙÑÛÇò¡£ÔÚ´Ë֮ǰ£¬ÎÒÒ²Ìýµ½Á˲»ÉÙ¶ÔMavenµÄ±§Ô¹£¬°üÀ¨XMLµÄ·±Èߣ¬²»¹»Áé»î£¬Ñ§Ï°ÇúÏß¶¸Ç͵ȵȡ£ÄÇGradleÊÇ·ñÄܹ»Ôڼ̳Ð
MavenÓŵãµÄ»ù´¡ÉÏ£¬¿Ë·þÕâЩȱµãÄØ£¿´ø×ÅÕâ¸öÒÉÎÊ£¬ÎÒ¿ªÊ¼ÔĶÁGradleµÄÎĵµ²¢³¢ÊÔ׎«Ò»¸ö»ùÓÚMavenµÄÏîĿת³ÉÓÃGradle¹¹½¨£¬±¾ÎÄËùÒª½²Êö´ó¸Å¾ÍÊÇÕâÑùµÄÒ»¸öÌåÑé¡£ÐèҪעÒâµÄÊÇ£¬±¾ÎÄÍêÈ«ÊÇ»ùÓÚMavenµÄ½Ç¶ÈÀ´¿´GradleµÄ£¬Òò´Ë¶ÔÓÚAntÓû§À´Ëµ£¬Êӽǿ϶¨»á´óÓв»Í¬¡£
Gradle³õÌåÑé
GradleµÄ°²×°·Ç³£·½±ã£¬ÏÂÔØZIP°ü£¬½âѹµ½±¾µØÄ¿Â¼£¬ÉèÖà GRADLE_HOME »·¾³±äÁ¿²¢½«
GRADLE_HOME/bin ¼Óµ½ PATH »·¾³±äÁ¿ÖУ¬°²×°¾ÍÍê³ÉÁË¡£Óû§¿ÉÒÔÔËÐÐgradle -vÃüÁîÑéÖ¤°²×°£¬ÕâЩ³õʼµÄ²½ÖèºÍMavenûʲôÁ½Ñù¡£GradleĿǰµÄ°æ±¾ÊÇ1.0-milestone-1£¬¸ù¾ÝÆäWikiÉϵÄRoadmap£¬ÔÚ1.0Õýʽ°æ·¢²¼Ö®Ç°£¬»¹ÖÁÉÙ»áÓÐ3¸öÀï³Ì±®°æ±¾£¬¶ø1.0µÄ·¢²¼ÈÕÆÚ×î¿ìÒ²²»»áÔçÓÚ6Ô·ݡ£¶øÕýÊÇÕâÑùÒ»¸ö¿´ÆðÀ´Ëƺõ»¹²»Ôõô³ÉÊìµÄÏîÄ¿£¬È´ÓÐ×ÅÈúܶà³ÉÊìÏîÄ¿¶¼º¹ÑÕµÄÎĵµ£¬Æä°üÀ¨Á˰²×°Ö¸ÄÏ¡¢»ù±¾½Ì³Ì¡¢ÒÔ¼°Ò»·Ý½ü300Ò³µÄÈ«ÃæÓû§Ö¸ÄÏ¡£Õâ¶ÔÓÚÓû§À´ËµÊǷdz£ÓѺõģ¬Í¬Ê±Ò²ËµÃ÷ÁËGradleµÄ¿ª·¢Õß¶ÔÕâ¸öÏîÄ¿·Ç³£ÓÐÐÅÐÄ£¬ÒªÖªµÀ±àд²¢Î¬»¤Îĵµ¿É²»ÊǼþÇáËɵŤ×÷£¬¶ÔÓÚGradleÕâÑùδÀ´ÈÔ¿ÉÄÜ·¢ÉúºÜ´ó±ä¶¯µÄÏîÄ¿À´ËµÓÈΪÈç´Ë¡£
ÀàËÆÓÚMavenµÄpom.xmlÎļþ£¬Ã¿¸öGradleÏîÄ¿¶¼ÐèÒªÓÐÒ»¸ö¶ÔÓ¦µÄbuild.gradleÎļþ£¬¸ÃÎļþ¶¨ÒåһЩÈÎÎñ£¨task£©À´Íê³É¹¹½¨¹¤×÷£¬µ±È»£¬Ã¿¸öÈÎÎñÊÇ¿ÉÅäÖõģ¬ÈÎÎñÖ®¼äÒ²¿ÉÒÔÒÀÀµ£¬Óû§ÒàÄÜÅäÖÃȱʡÈÎÎñ£¬¾ÍÏñÕâÑù£º
defaultTasks 'taskB'
task taskA << {
println "i'm task A"
}
task taskB << {
println "i'm task B, and I depend on " + taskA.name
}
taskB.dependsOn taskA
|
ÔËÐÐÃüÁî$ gradle -qÖ®ºó£¨²ÎÊýqÈÃGradle²»Òª´òÓ¡´íÎóÖ®ÍâµÄÈÕÖ¾£©£¬¾ÍÄÜ¿´µ½ÈçϵÄÔ¤ÆÚÊä³ö£º
i'm task A
i'm task B, and I depend on taskA
|
Õâ²»ÊǺÍAntÈç³öÒ»ÕÞô£¿µÄÈ·ÊÇÕâÑù£¬ÕâÖÖ¡°ÈÎÎñ¡±µÄ¸ÅÄîÓëÓ÷¨ÓëAnt¼°ÆäÏàËÆ¡£AntÈÎÎñÊÇGradleÊÀ½çµÄµÚÒ»¹«Ãñ£¬Gradle¶ÔAnt×öÁ˺ܺõɡ£³ý´ËÖ®Í⣬ÓÉÓÚGradleʹÓõÄGrovvy½Å±¾½ÏXML¸üΪÁé»î£¬Òò´Ë£¬¼´Ê¹ÎÒ×Ô¼º²»ÊÇAntÓû§£¬ÎÒÒ²ÈÔÈ»¾õµÃAntÓû§»áϲ»¶ÉÏGradle¡£
ÒÀÀµ¹ÜÀíºÍ¼¯³ÉMaven²Ö¿â
ÎÒÃÇÖªµÀÒÀÀµ¹ÜÀí¡¢²Ö¿â¡¢Ô¼¶¨ÓÅÓÚÅäÖõȸÅÄîÊÇMavenµÄºËÐÄÄÚÈÝ£¬Å׿ªÆäʵÏÖÊÇ·ñ×îÓŲ»Ì¸£¬¸ÅÄî±¾ÉíûʲôÎÊÌ⣬²¢ÇÒÒѾ±»¹ã·ºÑ§Ï°ºÍ½ÓÊÜ¡£ÄÇGradleʵÏÖÁËÕâЩÓÅÐã¸ÅÄîÁËô£¿´ð°¸Êǿ϶¨µÄ¡£
ÏÈ¿´ÒÀÀµ¹ÜÀí£¬ÎÒÓÐÒ»¸ö¼òµ¥µÄÏîÄ¿ÒÀÀµÓÚһЩµÚÈý·½Àà¿â°üÀ¨SpringFramework¡¢JUnit¡¢KaptchaµÈµÈ¡£ÔÀ´µÄMaven
POMÅäÖôó¸ÅÊÇÕâÑùµÄ£¨Æª·ù¹ØÏµ£¬Ê¡ÂÔÁ˲¿·Ö¸¸POMÅäÖã©£º
2.3
com.google.code.kaptcha
kaptcha
${kaptcha.version}
jdk15
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-context
junit
junit
|
È»ºóÎÒ½«Æäת»»³ÉGradle½Å±¾£¬½á¹ûÊǾªÈ˵ģº
dependencies {
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
}
|
×¢ÒâÅäÖôÓÔÀ´µÄ28ÐÐËõ¼õÖÁ7ÐУ¡Õ⻹²»ËãÎÒÊ¡ÂÔµÄһЩ¸¸POMÅäÖá£ÒÀÀµµÄgroupId¡¢artifactId¡¢
version£¬scopeÉõÖÁÊÇclassfier£¬Ò»µã¶¼²»ÉÙ¡£½ÏÖ®ÓÚMaven»òÕßAntµÄXMLÅäÖýű¾£¬GradleʹÓõÄGrovvy½Å±¾É±ÉËÁ¦Ì«´óÁË£¬°®ÃÀÖ®ÐÄ£¬È˽ÔÓÐÖ®£¬Ïà±ÈÓÚÆßÑ®Àϸ¾ËÉËÉ¿å¿åµÄÖåÎÆ£¬´ó¼Ò¿Ï¶¨¶¼Ï²»¶ÉÙÅ®½ôÖµÄÁ³µ°£¬XML¾ÍÊÇÄÇÀϸ¾µÄÖåÎÆ¡£
¹ØÓÚGradleµÄÒÀÀµ¹ÜÀíÆð³õÎÒÓÐÒ»µãµ£ÐÄ£¬¾ÍÊÇËüÊÇ·ñÓд«µÝÐÔÒÀÀµµÄ»úÖÆÄØ£¿¾¹ýÎĵµÔĶÁºÍʵ¼ÊÊÔÑéºó£¬Õâ¸öÒÉÂÇ´òÏûÁË£¬GradleÄܹ»½âÎöÏÖÓеÄMaven
POM»òÕßIvyµÄXMLÅäÖ㬴ӶøµÃµ½´«µÝÐÔÒÀÀµµÄÐÅÏ¢£¬²¢ÇÒÒýÈëµ½µ±Ç°ÏîÄ¿ÖУ¬ÕâʵÔÚÊÇÒ»¸ö´ÏÃ÷µÄ×ö·¨¡£ÔÚ´Ë»ù´¡ÉÏ£¬ËüÒ²Ö§³ÖÅųý´«µÝÐÔÒÀÀµ»òÕß¸É´à¹Ø±Õ´«µÝÐÔÒÀÀµ£¬ÆäÖеڶþµãÊÇMavenËù²»¾ß±¸µÄÌØÐÔ¡£
×Ô¶¯»¯ÒÀÀµ¹ÜÀíµÄ»ùʯÊDzֿ⣬MavenÖÐÑë²Ö¿âÒѾ³ÉΪÁËJava¿ª·¢Õß²»¿É»òȱµÄ×ÊÔ´£¬Gradle¼ÈÈ»ÓÐÒÀÀµ¹ÜÀí£¬ÄDZØÈ»Ò²µÃÓõ½²Ö¿â£¬Õ⵱ȻҲ°üÀ¨ÁËMavenÖÐÑë²Ö¿â£¬¾ÍÏñÕâÑù£º
repositories {
mavenLocal()
mavenCentral()
mavenRepo urls: "http://repository.sonatype.org/content/groups/forge/"
}
|
Õâ¶Î´úÂ뼸ºõ²»ÓýâÊÍ£¬¾ÍÊÇÔÚGradleÖÐÅäÖÃʹÓÃMaven±¾µØ²Ö¿â¡¢ÖÐÑë²Ö¿â¡¢ÒÔ¼°×Ô¶¨Ò嵨ַ²Ö¿â¡£ÔÚÎÒʵ¼Ê¹¹½¨ÏîÄ¿µÄʱºò£¬ÄÜ¿´µ½ÖÕ¶Ë´òÓ¡µÄÏÂÔØÐÅÏ¢£¬ÏÂÔØºóµÄÎļþ±»´æ´¢ÔÚ
USER_HOME/.gradle/cache/ Ŀ¼Ï¹©ÏîĿʹÓã¬ÕâÖÖʵÏֵķ½·¨ÓëMavenÓÖÊǼ°ÆäÀàËÆÁË£¬¿ÉÒÔ˵Gradle²»½ö×î´óÏ޶ȵļ̳ÐMavenµÄºÜ¶àÀíÄ²Ö¿â×ÊÔ´Ò²ÊÇÖ±½ÓÄÃÀ´Óá£
GradleÏîĿʹÓÃMavenÏîÄ¿Éú³ÉµÄ×ÊÔ´ÒѾ²»ÊǸöÎÊÌâÁË£¬½Ó×ÅÐèÒª·´¹ýÀ´¿¼ÂÇ£¬MavenÓû§ÊÇ·ñÄܹ»Ê¹ÓÃ
GradleÉú³ÉµÄ×ÊÔ´ÄØ£¿»òÕ߸ü¼òµ¥µãÎÊ£¬GradleÏîÄ¿Éú³ÉµÄ¹¹¼þÊÇ·ñ¿ÉÒÔ·¢²¼µ½Maven²Ö¿âÖй©ÈËʹÓÃÄØ£¿ÕâÒ»µã·Ç³£ÖØÒª£¬ÒòΪÈç¹û×ö²»µ½ÕâÒ»µã£¬Äã¿ÉÄܾͻᶪʧ´óÁ¿µÄÓû§¡£ÐÒÔ˵ÄÊÇGradleÔٴθø³öÁËÁîÈËÂúÒâµÄ´ð°¸¡£Ê¹ÓÃGradleµÄMaven
Plugin£¬Óû§¾Í¿ÉÒÔÇáËɵؽ«ÏîÄ¿¹¹¼þÉÏ´«µ½Maven²Ö¿âÖУº
apply plugin: 'maven'
...
uploadArchives {
repositories.mavenDeployer {
repository(url: "http://localhost:8088/nexus/content/repositories/snapshots/") {
authentication(userName: "admin", password: "admin123")
pom.groupId = "com.juvenxu"
pom.artifactId = "account-captcha"
}
}
}
|
ÔÚÉÏ´«µÄ¹ý³ÌÖУ¬GradleÄܹ»»ùÓÚbuild.gradleÉú³É¶ÔÓ¦µÄMaven POMÎļþ£¬Óû§¿ÉÒÔ×ÔÐÐÅäÖÃPOMÐÅÏ¢£¬±ÈÈçÕâÀïµÄgroupIdºÍartifactId£¬¶øÖîÈçÒÀÀµÅäÖÃÕâÑùµÄÄÚÈÝ£¬GradleÊÇ»á×Ô¶¯°ïÄã½øÐÐת»»µÄ¡£ÓÉÓÚMavenÏîĿ֮¼äÒÀÀµ½»»¥µÄÖ±½Ó;¾¶¾ÍÊDzֿ⣬¶øGradle¼ÈÄܹ»Ê¹ÓÃMaven²Ö¿â£¬Ò²ÄÜÒÔMavenµÄ¸ñʽ½«×Ô¼ºµÄÄÚÈÝ·¢²¼µ½²Ö¿âÖУ¬Òò´Ë´Ó¼¼Êõ½Ç¶ÈÀ´Ëµ£¬¼´Ê¹ÔÚÒ»¸ö»ùÓÚMavenµÄ´ó»·¾³ÖУ¬¾Ö²¿Ê¹ÓÃGradleÒ²¼¸ºõ²»»áÊÇÒ»¸öÎÊÌâ¡£
Ô¼¶¨ÓÅÓÚÅäÖÃ
ÈçͬAntÒ»°ã£¬Gradle¸øÁËÓû§×ã¹»µÄ×ÔÓÉÈ¥¶¨Òå×Ô¼ºµÄÈÎÎñ£¬²»¹ýͬʱGradleÒ²ÌṩÁËÀàËÆMavenµÄÔ¼¶¨ÓÉÓÚÅäÖ÷½Ê½£¬ÕâÊÇͨ¹ýGradleµÄJava
PluginʵÏֵ쬴ÓÎĵµÉÏ¿´£¬GradleÊÇÍÆ¼öÕâÖÖ·½Ê½µÄ¡£Java Plugin¶¨ÒåÁËÓëMavenÍêȫһÖµÄÏîÄ¿²¼¾Ö£º
1.src/main/java
2.src/main/resources
3.src/test/java
4.src/test/resources
Çø±ðÔÚÓÚ£¬Ê¹ÓÃGroovy×Ô¶¨ÒåÏîÄ¿²¼¾Ö¸ü¼ÓµÄ·½±ã£º
sourceSets {
main {
java {
srcDir 'src/java'
}
resources {
srcDir 'src/resources'
}
}
}
|
Gradle Java PluginÒ²¶¨ÒåÁ˹¹½¨ÉúÃüÖÜÆÚ£¬°üÀ¨±àÒëÖ÷´úÂë¡¢´¦Àí×ÊÔ´¡¢±àÒë²âÊÔ´úÂë¡¢Ö´ÐвâÊÔ¡¢ÉÏ´«¹éµµµÈµÈÈÎÎñ£º

Figure 1. GradleµÄ¹¹½¨ÉúÃüÖÜÆÚ
Ïà¶ÔÓÚMavenÍêÈ«ÏßÐÔµÄÉúÃüÖÜÆÚ£¬GradleµÄ¹¹½¨ÉúÃüÖÜÆÚÂÔ΢¸´ÔÓ£¬²»¹ýÒ²¸üΪÁé»î£¬ÀýÈçjarÕâ¸öÈÎÎñÊÇÓÃÀ´´ò°üµÄ£¬Ëü²»ÏñMavenÄÇÑùÒÀÀµÓÚÖ´ÐвâÊÔµÄtestÈÎÎñ£¬ÀàËÆµÄ£¬´ÓͼÖпÉÒÔ¿´µ½£¬Ò»¸ö×îÖÕµÄbuildÈÎÎñҲûÓÐÒÀÀµÓÚuploadArchivesÈÎÎñ¡£Õâ¸öÉúÃüÖÜÆÚ²¢Ã»Óн«Óû§ÏÞÖÆµÃºÜËÀ£¬¾Ù¸öÀý×Ó£¬ÎÒÏ£Íûÿ´Îbuild¶¼·¢²¼
SNAPSHOT°æ±¾µ½Maven²Ö¿âÖУ¬¶øÇÒÎÒÖ»ÏëʹÓÃ×î¼òµ¥µÄ$ gradle clean buildÃüÁÄÇÖ»ÐèÒªÌí¼ÓÒ»ÐÐÈÎÎñÒÀÀµÅäÖü´¿É£º
build.dependsOn 'uploadArchives' |
ÓÉÓÚGradleÍêÈ«ÊÇ»ùÓÚÁé»îµÄÈÎÎñÄ£ÐÍ£¬Òò´ËºÜ¶àÊÂÇé°üÀ¨¸²¸ÇÏÖÓÐÈÎÎñ£¬Ìø¹ýÈÎÎñ¶¼·Ç³£Ò×ÓÚʵÏÖ¡£¶øÕâЩÊÂÇ飬ÔÚMavenµÄÊÀ½çÖУ¬ÊµÏÖÆðÀ´¾Í±È½ÏµÄÂé·³£¬»òÕß˵Mavenѹ¸ù¾Í²»Ï£ÍûÓû§Õâô×ö¡£
С½á
Ò»·¬ÌåÑéÏÂÀ´£¬Gradle¸øÎÒ×î´óµÄ¸Ð¾õÊÇÁ½µã¡£ÆäÒ»ÊǼò½à£¬»ùÓÚGroovyµÄ½ô´Õ½Å±¾ÊµÔÚÈÃÈ˰®²»ÊÍÊÖ£¬ÔÚ±íÊöÒâͼ·½ÃæÒ²Ã»ÓÐʲô²»ÇåÎúµÄµØ·½¡£Æä¶þÊÇÁé»î£¬¸÷ÖÖÔÚMavenÖÐÄÑÒÔÏÂÊÖµÄÊÂÇ飬ÔÚGradle¾ÍÊÇС²ËÒ»µú£¬±ÈÈçÐÞ¸ÄÏÖÓеĹ¹½¨ÉúÃüÖÜÆÚ£¬¼¸ÐÐÅäÖþÍÍê³ÉÁË£¬Í¬ÑùµÄÊÂÇ飬ÔÚMavenÖÐÄã±ØÐë±àдһ¸ö²å¼þ£¬ÄǶÔÓÚÒ»¸ö¸ÕÈëÃŵÄÓû§À´Ëµ£¬Ã»¸öÒ»Á½Ì켸ºõÊDz»¿ÉÄÜÍê³ÉµÄÈÎÎñ¡£
²»¹ý¼´Ê¹Èç´Ë£¬GradleÔÚδÀ´ÄÜ·ñÈ¡´úMaven£¬ÔÚÎÒ¿´À´Ò²»¹ÊǸöδ֪Êý¡£ËüµÄÒ»´óÕϰ¾ÍÊÇGrovvy£¬¼¸ºõËùÓÐ
Java¿ª·¢Õß¶¼ÊìϤXML£¬¿ÉÓÖÓм¸¸öÈËÁ˽âGroovyÄØ£¿Ñ§Ï°³É±¾ÕâµÀ¿²ÊǺÜÄÑ¿çÔ½µÄ£¬ºÜ¶àÈ˵ÖÖÆMaven¾ÍÊÇÒòΪѧÆðÀ´²»ÈÝÒ×£¬ÄãÏÖÔÚÈÃÒòΪһ¸ö¹¹½¨¹¤¾ßѧϰһÃÅÐÂÓïÑÔ£¨¼´Ê¹ÕâÃÅÓïÑÔºÍJava·Ç³£½Ó½ü£©£¬Äǵõ½À䵵Ļظ´¼¸ºõÊDZØÈ»µÄÊÂÇé¡£GradleµÄÁíÍâÒ»¸öÎÊÌâ¾ÍÊÇËüÌ«Áé»îÁË£¬ËäÈ»ËüÖ§³ÖÔ¼¶¨ÓÅÓÚÅäÖ㬲»¹ý´Ó±¾ÎÄÄãÒ²¿´µ½ÁË£¬ÆÆ»µÔ¼¶¨ÊǶàôÈÝÒ×µÄÊÂÇé¡£È˶¼Ï²»¶×ÔÓÉ£¬°®×Ô¶¨Ò壬¾õµÃ×Ô¼ºµÄÐèÇóÊǶàôµÄÌØ±ð£¬¿ÉÊÂʵÉÏ£¬´ÓMavenµÄÁ÷ÐÐÀ´¿´£¬¼¸ºõ95%ÒÔÉϵÄÇé¿öÄã²»ÐèÒª×ÔÐÐÀ©Õ¹£¬Èç¹ûÄãÕâô×öÁË£¬Ö»»áÈù¹½¨±äµÃÄÑÒÔÀí½â¡£´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬×ÔÓÉÊǰÑË«Èн££¬Gradle¸øÁËÄã×ã¹»µÄ×ÔÓÉ£¬Ô¼¶¨ÓÅÓÚÅäÖÃÖ»ÊÇËüµÄÒ»¸öÑ¡Ïî¶øÒÑ£¬Õâ³õ¿´ÆðÀ´ºÜÓÕÈË£¬È´Ò²¿ÉÄÜʹÆäÖØµ¸AntµÄ¸²ÕÞ¡£MavenÔÚAntµÄ»ù´¡ÉÏÒýÈëÁËÒÀÀµ¹ÜÀí¡¢²Ö¿âÒÔ¼°Ô¼¶¨ÓÅÓÚÅäÖõȸÅÄÊÇÒ»¸öºÜ´óµÄ½ø²½£¬²»¹ýÔÚÎÒÏÖÔÚ¿´À´£¬Gradle²¢Ã»ÓÐÒýÈëеĸÅÄ¸øÎҸоõËüÊÇÒ»¸ö½áºÏAntºÍMavenÀíÄîµÄÓÅÐãʵÏÖ¡£
Èç¹ûÄãÁ˽âGroovy£¬Ò²Àí½âMavenµÄÔ¼¶¨ÓÅÓÚÅäÖã¬ÄÇÊÔÊÔGradleµ¹Ò²²»´í£¬ÓÈÆäÊÇËü¼¸ºõÄܺÍÏÖÓеÄMavenϵͳÎ޷켯³É£¬¶øÇÒÄãÒ²ÄÜÏíÊܵ½¼ò½à´øÀ´µÄ¼«´óÀÖȤ¡£Æäʵ˵µ½¼ò½à£¬Ò²ÐíÔÚ²»¾ÃµÄ½«À´MavenÓû§Ò²ÄÜÖ±½ÓÏíÊܵ½£¬Polyglot
MavenÔÚÕâ·½ÃæÒѾ×öÁ˲»ÉÙ¹¤×÷¡£±¾ÎÄÍêÈ«»ùÓÚMavenµÄÊӽǽéÉÜGradleÕâÒ»¹¹½¨¹¤¾ßµÄÐÂÐ㣬²»¹ýÏÞÓÚÆª·ùÔÒò£¬ÎÞ·¨ÉîÈëGradleµÄ·½·½ÃæÃ棬ÀýÈçGradleÒ²Ö§³Ö¶àÄ£¿é¹¹½¨£¬ËüÌṩÁËGUI²Ù×÷½çÃæ£¬Ö§³ÖGrovvy£¨ÀíËùµ±È»£©ºÍScalaÏîÄ¿µÈµÈ¡£ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔ×ÔÐнøÒ»²½Á˽⡣ |