gradle和maven區別

原文連接:http://blog.csdn.net/jueane/article/details/50383431

---------------------------------------------

Gradle和Maven都是項目自動構建工具,編譯源代碼只是整個過程的一個方面,更重要的是,你要把你的軟件發布到生產環境中來產生商業價值,所以,你要運行測試,構建分布、分析代碼質量、甚至為不同目標環境提供不同版本,然后部署。整個過程進行自動化操作是很有必要的。

整個過程可以分成以下幾個步驟:

  • 編譯源代碼
  • 運行單元測試和集成測試
  • 執行靜態代碼分析、生成分析報告
  • 創建發布版本
  • 部署到目標環境
  • 部署傳遞過程
  • 執行冒煙測試和自動功能測試
如果你手工去執行每一個步驟無疑效率比較低而且容易出錯,有了自動化構建你只需要自定義你的構建邏輯,剩下的事情交給工具去完成。

雖然兩者都是項目工具,但是maven現在已經是行業標準,Gradle是后起之秀,很多人對他的了解都是從android studio中得到的,Gradle拋棄了Maven的基于XML的繁瑣配置,眾所周知XML的閱讀體驗比較差,對于機器來說雖然容易識別,但畢竟是由人去維護的。取而代之的是Gradle采用了領域特定語言Groovy的配置,大大簡化了構建代碼的行數,比如在Maven中你要引入一個依賴:
<properties><kaptcha.version>2.3</kaptcha.version></properties>
<dependencies><dependency><groupId>com.google.code.kaptcha</groupId><artifactId>kaptcha</artifactId><version>${kaptcha.version}</version><classifier>jdk15</classifier></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>

然后我將其轉換成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給我最大的有點是兩點。其一是簡潔,基于Groovy的緊湊腳本實在讓人愛不釋手,在表述意圖方面也沒有什么不清晰的地方。其二是靈活,各種在Maven中難以下手的事情,在Gradle就是小菜一碟,比如修改現有的構建生命周期,幾行配置就完成了,同樣的事情,在Maven中你必須編寫一個插件,那對于一個剛入門的用戶來說,沒個一兩天幾乎是不可能完成的任務。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538044.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538044.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538044.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS開發提問題

1、打造最受企業歡迎的iOS開發者&#xff1a; 一直都存在的問題&#xff0c;什么樣的員工最受企業歡迎&#xff1f;一直也有人在努力提升自己&#xff0c;成為受企業歡迎的員工然而&#xff0c;我們應該往方向去提升自己呢&#xff1f;88家知名企業今年來iOS面試題合集&#xf…

maven引用公共包_使用github作為maven倉庫存放發布自己的jar包依賴 實現多個項目公共部分代碼的集中,避免團隊中多個項目之間代碼的復制粘貼...

使用github作為maven倉庫存放發布自己的jar包依賴 實現多個項目公共部分代碼的集中&#xff0c;避免團隊中多個項目之間代碼的復制粘貼。1、首先在本地maven位置的配置文件setting.xml(沒有該文件就新建這個文件)中&#xff0c;添加配置maven倉庫的地址。我用的是我的GitHub倉庫…

Gradle筆記——Gradle的簡介與安裝

原文連接&#xff1a;http://blog.csdn.net/maosidiaoxian/article/details/40109337 gradle專欄 ----------------------------------------- Gradle 安裝 1&#xff0c;安裝JDK&#xff0c;并配置JAVA_HOME環境變量。因為Gradle是用Groovy編寫的&#xff0c;而Groovy基于JA…

WPF之鼠標滑動切換圖片

原文:WPF之鼠標滑動切換圖片在網上找了一會兒也沒找到我想要的效果&#xff0c;還是自己動手&#xff0c;豐衣足食吧。 需求&#xff1a;當前面板中只顯示一張圖片&#xff0c;圖片欄的下部有用來顯示當前圖片處于圖片隊列中的位置的圓球&#xff0c;并且點擊下部欄內的圓球可以…

CPU的核心數、線程數的關系和區別

原文地址&#xff1a;http://blog.csdn.net/yu132563/article/details/45222935 ------------------------------------- 我們在選購電腦的時候&#xff0c;CPU是一個需要考慮到核心因素&#xff0c;因為它決定了電腦的性能等級。CPU從早期的單核&#xff0c;發展到現在的雙核…

mysql in 子查詢優化_mysql in 子查詢 容易優化

mysql in 子查詢 簡單優化 大數量下&#xff0c;不要使用 in 嵌套子查詢&#xff0c;性能很差&#xff0c;很容易卡死。 ? 簡單調整方式如下&#xff1a; select uid,nick_name from uc_users where uid in(select fid from uc_follow where uid#uid#) ? 可拆解成&#xff1a…

谷歌瀏覽器插件入門示例

2019獨角獸企業重金招聘Python工程師標準>>> 實現&#xff1a;任何網址實現圖片下載和獲取當前域名的cookies的json字符串。 圖片下載是給小白用的&#xff0c;可以選中批量下載&#xff0c;獲取cookies 是為了方便程序員調試用。 獲取cookies: git地址&#xff1a;…

Fiddler中response亂碼的解決方案

原文連接&#xff1a;http://blog.csdn.net/quiet_girl/article/details/50577828 ---------------------------------------------------------- 有時候我們看到Response中的HTML是亂碼的&#xff0c; 這是因為HTML被壓縮了&#xff0c; 我們可以通過兩種方法去解壓縮。 解決…

線程帶來的風險

線程安全性問題 多線程環境下 多個線程共享一個資源對資源進行非原子性操作。 以上三者都存在就會發生線程安全性問題 如文中的賣火車票問題&#xff1a;http://blog.csdn.net/zengmingen/article/details/53217229 原因是&#xff1a;一行java代碼轉成.class字節碼文件后是…

vue內引入語音播報功能

為什么80%的碼農都做不了架構師&#xff1f;>>> 在vue項目中引入語音播報&#xff0c;使用的科大訊飛語音接入&#xff0c; 具體思路為每次接收到語音信息后存入一個數組&#xff0c;然后監聽這個數組&#xff0c;開始沖第一個索引播放&#xff0c;并且同時根據vue…

php mysql 排序規則_php 數組排序以及按照某個字段排序

如果你已經使用了一段時間PHP的話&#xff0c;那么&#xff0c;你應該已經對它的數組比較熟悉了——這種數據結構允許你在單個變量中存儲多個值&#xff0c;并且可以把它們作為一個集合進行操作。經常&#xff0c;開發人員發現在PHP中使用這種數據結構對值或者數組元素進行排序…

單例問題與線程安全

餓漢式 沒有線程安全性問題 懶漢式 public class SingletonDemo2 {private static SingletonDemo2 instance;private SingletonDemo2() {}public static SingletonDemo2 getInstance() {if(instancenull) {instancenew SingletonDemo2();}return instance;}}如果遇到多線程。上…

python 音速_中國大學MOOC的APP(慕課)2021用Python玩轉數據章節答案

在高技術戰爭件下,信息的獲取相當于人的感覺器官,信息的傳輸相當于人的神經網絡,信息的處理相當于人的大腦,( )則將它們聯系為一個整體,構成了作戰的神經系統。車身可拆卸的連接有螺紋連接、卡口鏈接、鉸鏈連接。在高技術戰爭件下,信息的獲取相當于人的感覺器官,信息的傳輸相當…

Mysql中的觸發器

原文地址&#xff1a;https://www.cnblogs.com/zyshi/p/6618839.html ---------------------------------------------------------什么是觸發器 簡單的說&#xff0c;就是一張表發生了某件事&#xff08;插入、刪除、更新操作&#xff09;&#xff0c;然后自動觸發了預先編寫好…

一張圖理解JS的原型(prototype、_proto_、constructor的三角關系)

注意&#xff1a;前方高能預警&#xff0c;請認真仔細看完&#xff0c;閱讀完后自己再次畫下原型圖&#xff0c;相信你一定會有更深刻的認識。(推薦炒雞好用的畫流程圖的軟件ProcessOn)構造函數&#xff1a;function Foo ( ) { };實例對象&#xff1a;let f1new Foo;let o1new …

Oracle觸發器和MySQL觸發器之間的區別

原文鏈接&#xff1a;http://blog.csdn.net/a19881029/article/details/37820363 -----------------------------------------------------------Oracle觸發器格式&#xff1a;[plain] view plaincopyCREATE [OR REPLACE] TRIGGER trigger_name BEFORE|AFTER INSERT|UPDA…

下列選項中不符合python語言變量命名規則的是_學習Python第二日--基本概念和類型...

編程語言分類:解釋型語言和編譯型語言。解釋型語言不會產生額外的文件,運行時一行一行的翻譯。編譯型語言需要產生一個額外的文件,是電腦能夠識別的內容,運行后將產生額外的文件。 變量是可變的量,是它的值可以發生改變。變量的作用是保存值,保存的值可以是數據,而且保存…

HashMap死鎖原因及替代方案

原文鏈接&#xff1a;http://blog.csdn.net/fhzaitian/article/details/51505516 ------------------------------------------------------------------------1、首先我們需要簡單地了解一下HashMap數據結構 HashMap通常會用一個指針數組&#xff08;假設為table[]&#xff09…

優化mysql數據庫_MySQL數據庫十大優化技巧

WEB開發者不光要解決程序的效率問題&#xff0c;對數據庫的快速訪問和相應也是一個大問題。希望本文能對大家掌握MySQL優化技巧有所幫助。1. 優化你的MySQL查詢緩存在MySQL服務器上進行查詢&#xff0c;可以啟用高速查詢緩存。讓數據庫引擎在后臺悄悄的處理是提高性能的最有效方…

跋山涉水——深入 Redis 字典遍歷

Redis 字典的遍歷過程邏輯比較復雜&#xff0c;互聯網上對這一塊的分析講解非常少。我也花了不少時間對源碼的細節進行了整理&#xff0c;將我個人對字典遍歷邏輯的理解呈現給各位讀者。也許讀者們對字典的遍歷過程有比我更好的理解&#xff0c;還請不吝指教。一邊遍歷一邊修改…