国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

gradle和maven的區(qū)別

來(lái)源:懂視網(wǎng) 責(zé)編:李贏贏 時(shí)間:2021-12-23 13:49:07
文檔

gradle和maven的區(qū)別

1、基礎(chǔ)配置信息:maven基于XML;gradle基于Groovy。2、依賴(lài)管理:Gradle的jar包管理支持maven下Repository方式。3、多項(xiàng)目管理:maven使用依賴(lài),繼承,組成的概念;Gradle劃分更明確。4、任務(wù)機(jī)制:Maven自由度小;gradle自帶task概念。
推薦度:
導(dǎo)讀1、基礎(chǔ)配置信息:maven基于XML;gradle基于Groovy。2、依賴(lài)管理:Gradle的jar包管理支持maven下Repository方式。3、多項(xiàng)目管理:maven使用依賴(lài),繼承,組成的概念;Gradle劃分更明確。4、任務(wù)機(jī)制:Maven自由度小;gradle自帶task概念。

gradle和maven的區(qū)別是什么呢?不知道的小伙伴來(lái)看看小編今天的分享吧!

1、基礎(chǔ)配置信息區(qū)別:

maven使用.pom文件,基于XML,gradle使用.gradle文件,基于Groovy,gradle去掉maven中需要固定配置的groupId,artfactId,package等基本參數(shù),通過(guò) apply plugin: 'java',apply plugin: 'war'來(lái)表示打包方式,也提供sourceCompatibility,version等一些實(shí)用的標(biāo)簽。

2、依賴(lài)管理區(qū)別:

Gradle的jar包管理支持maven下Repository方式,也支持Ant的Ivy方式,由于maven的Repository已經(jīng)非常成熟,gradle在兼容Repository做得非常方便,定義maven的repository:

mavenLocal() :maven 本地庫(kù)

mavenCentral() : maven 遠(yuǎn)程庫(kù)

mavenRepo urls: 自定義庫(kù)路徑

maven通過(guò)groupId、name和version到配置的Repository里尋找指定依賴(lài)中的Jar包。Gradle的生命周期更為復(fù)雜,但也支持Maven依賴(lài)中的構(gòu)建生命周期,compile、runtime、testCompile和testRuntime分別對(duì)應(yīng)項(xiàng)目不同階段的依賴(lài)。 并且還簡(jiǎn)化maven的配置命令。

Maven:

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.7</version> 

<scope>test</scope>

</dependency>

Gradle:

dependencies {    testCompile group:'junit', name: 'junit', version '4.11'}

或者

dependencies {    testCompile 'junit:junit:4.11'    }

如果需要引用自己lib目錄下jar包,maven需要在每個(gè)依賴(lài)加上<scope> 和<systemPath>標(biāo)簽或者在plugin里單獨(dú)增加編譯路徑。而Gradle只需要加上

compile fileTree(dir: 'libs', include: '*.jar'),在多個(gè)路徑下時(shí):

jarTree = fileTree(dir: 'libs', include: '*.jar')

rootTree = new File(rootProject.rootDir, 'libs').getAbsolutePath()

jarTree += fileTree(dir: rootTree, include: '*.jar')

compile jarTree

在依賴(lài)相關(guān)的命令行方面,gradle與maven比較相似,maven常用的分析依賴(lài)命令包括:

mvn dependency:analyz查看依賴(lài);

mvn dependency:tree 查看項(xiàng)目直接和傳遞依賴(lài); 

mvn help:effective-pom查看有效的pom;

在gradle中使用gradle dependencies 可以查看項(xiàng)目中包的依賴(lài)關(guān)系。加上-configuration來(lái)查看指定階段的依賴(lài)情況,還可以-dependency來(lái)查看指定jar的依賴(lài)情況。

3、多項(xiàng)目管理區(qū)別:

實(shí)際使用中,往往需要管理的都不是單單一個(gè)項(xiàng)目,maven使用依賴(lài),繼承,組成的概念,在父模塊指定自己的子模塊,并且準(zhǔn)備一些各個(gè)子模塊公用的資源,如插件,配置信息等等。將打包的模塊與實(shí)現(xiàn)具體功能的模塊分開(kāi)的做法來(lái)管理多個(gè)項(xiàng)目。Gradle在這一方面做得更加清楚,劃分更明確,學(xué)習(xí)gradle的多項(xiàng)目管理也很容易,在eclipse中安裝完gradle插件之后,新建一個(gè)Gradle工程,選擇flat-java-multiproject,生成的工程就是多項(xiàng)目管理一個(gè)示例。

Gradle通過(guò)settings.gradle文件來(lái)指定工程的子項(xiàng)目,在構(gòu)建的初始化階段(Initialization),Gradle會(huì)根據(jù)settings.gradle 文件來(lái)判斷有哪些子項(xiàng)目被include到了構(gòu)建中,并為每一個(gè)子項(xiàng)目初始化一個(gè)Project對(duì)象,在構(gòu)建腳本中通過(guò)project(‘:sub-project-name’)來(lái)引用子項(xiàng)目對(duì)應(yīng)的Project對(duì)象。關(guān)于多項(xiàng)目配置有非常多,因此就簡(jiǎn)述一下常用的配置共享以及配置獨(dú)享。

Allprojects屬性,返回該P(yáng)roject對(duì)象以及其所有子項(xiàng)目。

subprojects屬性,返回該P(yáng)roject所有子項(xiàng)目。

project(‘:sub-project-name’)來(lái)設(shè)置對(duì)應(yīng)的子項(xiàng)目的配置。

configure(subprojects.findAll {it.name.contains('XXX')})來(lái)找符合要求的子項(xiàng)目。

在子項(xiàng)目的build.gradle文件里添加自己獨(dú)有的配置。

4、任務(wù)機(jī)制區(qū)別:

Maven相對(duì)于ant相比僅僅通過(guò)plugin提供任務(wù)機(jī)制,相比而言自由度小而且很難擴(kuò)展,每定義一個(gè)功能都需要寫(xiě)一個(gè)插件,Ant中使用tagret標(biāo)簽的echo來(lái)指定命令,gradle使用groovy語(yǔ)言,自帶task概念,與ant使用的build文件更加接近。一個(gè)Task表示一個(gè)邏輯上的執(zhí)行單元。

Gradle編寫(xiě)task的方式有很多,網(wǎng)上也能很容易搜索到相關(guān)的例子,在此簡(jiǎn)述有關(guān)task的一些實(shí)用命令以及自己一個(gè)常用的task:

Task listJars(description: 'Display compile jars.') << {

configurations.compile.each { File file -> println file.name }

以上就是小編今天的分享了,希望可以幫助到大家。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

gradle和maven的區(qū)別

1、基礎(chǔ)配置信息:maven基于XML;gradle基于Groovy。2、依賴(lài)管理:Gradle的jar包管理支持maven下Repository方式。3、多項(xiàng)目管理:maven使用依賴(lài),繼承,組成的概念;Gradle劃分更明確。4、任務(wù)機(jī)制:Maven自由度小;gradle自帶task概念。
推薦度:
標(biāo)簽: gradle maven的區(qū)別
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top
主站蜘蛛池模板: 精品视频一区二区 | 国产在线观看免费一级 | 国产产一区二区三区久久毛片国语 | 国内精品久久久久 | 一级大黄毛片 | 色综合天天综合中文网 | 成人a免费视频播放 | 99久久国产亚洲综合精品 | 亚洲尹人九九大色香蕉网站 | 韩国精品一区二区久久 | 亚洲视频久久 | 亚洲精品国产自在久久出水 | 欧美日韩在线亚洲国产人 | 亚洲日韩欧美视频 | 国产一区二区三区免费视频 | 欧美在线观看网站 | 欧美日韩高清在线 | 欧美一区二区三区不卡 | 久久国产精品久久久久久久久久 | 欧美亚洲综合视频 | 国产高清美女一级a毛片久久 | 国产黄色小视频在线观看 | 国产视频观看 | 手机在线观看国产精选免费 | 精品91精品91精品国产片 | 一道精品一区二区三区 | 伊人情人综合成人久久网小说 | 国内一级一级毛片a免费 | 亚洲一区二区三区成人 | 国产日韩欧美亚洲综合在线 | 欧美一区二区在线播放 | 精品一区二区三区亚洲 | 日韩视频区 | 在线国产一区 | 国产视频一区在线 | 亚洲国产精品一区二区九九 | 日韩黄色网页 | 精品久久久久中文字幕日本 | 国产成人精品一区二区不卡 | 亚洲一区二区精品 | 国产日本在线 |