groovy使用場(chǎng)景 gradle比maven好為什么用的人少?
gradle比maven好為什么用的人少?我們公司已經(jīng)在多個(gè)項(xiàng)目中使用了gradle,但是大多數(shù)項(xiàng)目仍然使用maven,估計(jì)將來(lái)會(huì)使用maven。為什么?這是因?yàn)楦窭聽柕臍⑹郑簞”臼侨绱藦?qiáng)大。早期的
gradle比maven好為什么用的人少?
我們公司已經(jīng)在多個(gè)項(xiàng)目中使用了gradle,但是大多數(shù)項(xiàng)目仍然使用maven,估計(jì)將來(lái)會(huì)使用maven。為什么?這是因?yàn)楦窭聽柕臍⑹郑簞”臼侨绱藦?qiáng)大。
早期的構(gòu)建是腳本化的,使用SH或bat將編譯、打包、部署和其他過程結(jié)合起來(lái)。后來(lái),它演變成了用XML描述的ant工具,但它仍然可以編寫許多自定義任務(wù),調(diào)用本地命令進(jìn)行打包,并可以組合各種任務(wù),類似于bat。他們的共同特點(diǎn)是:靈活!您可以指定自己的依賴路徑來(lái)個(gè)性化打包過程。直到后來(lái),Maven出現(xiàn)了,不同的項(xiàng)目只能通過不同的ArchType來(lái)構(gòu)建。每個(gè)項(xiàng)目類型的項(xiàng)目目錄都是固定的。如果沒有問題,一個(gè)package命令就可以了。沒有個(gè)性化的配置(除了mojo),約定勝于配置是它的理念!你只要明白pom.xml文件基本配置就足夠了。
Gradle結(jié)合了maven的優(yōu)點(diǎn),同時(shí)保留了腳本調(diào)用的特性。它往往給人們太多的選擇和機(jī)會(huì),但它會(huì)使項(xiàng)目(尤其是大型項(xiàng)目)的建設(shè)和配置復(fù)雜化。因此,新手很難掌握它的DSL語(yǔ)法,這是一個(gè)簡(jiǎn)化的groovy調(diào)用。有時(shí)他們不了解groovy語(yǔ)言及其語(yǔ)法,因此很難理解和編寫好的構(gòu)造腳本,而且學(xué)習(xí)成本很高。
java程序員為什么使用Groovy?
1. Groovy與Java兼容。
是的,您可以使用Java語(yǔ)法來(lái)編寫groovy。最后,您可以生成一個(gè)類文件并在Java中直接調(diào)用它。你會(huì)說,這有什么好處?這不就是后綴的變化嗎?哦,也許吧,但最精彩的不是這個(gè)。它的亮點(diǎn)是可以直接在groovy中混合和匹配Java語(yǔ)法,這是不推薦的。
2. Groovy是動(dòng)態(tài)的。
您不需要java反射、冗長(zhǎng)的代碼和各種try-catch異常來(lái)實(shí)現(xiàn)各種神奇的功能。Groovy的類可以添加這樣的新方法,或者調(diào)用它。
Groovy有什么優(yōu)點(diǎn)?
讓我們先談?wù)剠^(qū)別:Java是一種編譯器語(yǔ)言,也就是說,必須先編譯它才能運(yùn)行。Groovy語(yǔ)言是一種動(dòng)態(tài)語(yǔ)言。Groovy是JVM的另一種語(yǔ)言—替換意味著您可以使用Groovy在java平臺(tái)上以與java代碼相同的方式編程java。groovy的好處之一是它的語(yǔ)法與Java語(yǔ)言非常相似。盡管groovy的語(yǔ)法來(lái)自Smalltalk和ruby等語(yǔ)言的思想,但它可以被認(rèn)為是Java語(yǔ)言的一個(gè)更簡(jiǎn)單、更具表現(xiàn)力的變體。(ruby在這方面與groovy不同,因?yàn)樗恼Z(yǔ)法與Java語(yǔ)法非常不同。)