第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)教一下gradle provided和compile的區(qū)別?

請(qǐng)教一下gradle provided和compile的區(qū)別?

gradle provided和compile的區(qū)別
查看完整描述

4 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

gradle provided和compile的區(qū)別在于使用providedCompile的前提是apply plugin: 'war'

1、Gradle compile:

假如你的jar包存在代碼依賴性,在編譯、運(yùn)行時(shí)候需要依賴代碼,那就用compile

例如 :

compile 'org.springframework.boot:spring'

2、Gradle providedCompile:

假如你的jar包存在代碼依賴性,但是在編譯的時(shí)候才用得上,而運(yùn)行時(shí)不需要,就用providedCompile

例如:

providedCompile 'org.springframework.boot:spring'


查看完整回答
反對(duì) 回復(fù) 2019-09-07
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊

Gradle compile:
如果你的jar包/依賴代碼 在編譯的時(shí)候需要依賴,在運(yùn)行的時(shí)候也需要,那么就用compile
例如 :
compile ‘org.springframework.boot:spring-boot-starter-websocket:1.1.6.RELEASE‘

Gradle providedCompile:
如果你的jar包/依賴代碼 僅在編譯的時(shí)候需要,但是在運(yùn)行時(shí)不需要依賴,就用providedCompile
例如:
providedCompile ‘org.springframework.boot:spring-boot-starter-tomcat:1.1.6.RELEASE‘



查看完整回答
反對(duì) 回復(fù) 2019-09-07
?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

假設(shè)項(xiàng)目引用了類庫(kù) A 和類庫(kù) B ,同時(shí),這兩個(gè)類庫(kù)都依賴包 C 。
1. 如果 A 、B 、C 均為 Maven 依賴,可以直接使用,不會(huì)存在沖突問(wèn)題。
如果還是有問(wèn)題,則在主項(xiàng)目可以去除 A 、B 中的 C 。
主項(xiàng)目:
compile 'a.group:a.artifactId:a.version' {
exclude group: 'c.groupId', module: 'c.artifactId'
}
compile 'b.group:b.artifactId:b.version' {
exclude group: 'c.groupId', module: 'c.artifactId'
}
compile 'c.groupId:c.artifactId:c.version'
2. 如果 A 、B 均為 Maven 依賴,C 為 jar 依賴。則將 C 復(fù)制到主項(xiàng)目、A 、B 中,主項(xiàng)目 compile C ,A 、B provided C 。
主項(xiàng)目: compile files('libs/C.jar')

A 、B 項(xiàng)目:provided files('libs/xx.jar')
3. 如果 A 、B 均為 Library Project 依賴,C 為 jar 依賴。同 2 。
4. 如果 A 、B 均為 Library Project 依賴,C 為 Maven 依賴。同 2 或者 1(Maven 依賴也可以進(jìn)行 provided 處理)。
5. 如果 A 為 Maven 依賴或者 Library Project 依賴,B 為 jar 依賴,C 為 jar 依賴。
A 項(xiàng)目:provided files('libs/xx.jar')

B 項(xiàng)目和主項(xiàng)目,不做其他任何處理。
6. 如果 A 、B 、C 均為 jar 依賴,嘗試重新將 A 、B 打包,將 C 剝離出來(lái)。



查看完整回答
反對(duì) 回復(fù) 2019-09-07
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

在使用Android Studio開(kāi)發(fā)的時(shí)候,如遇到多個(gè)項(xiàng)目引用同一個(gè)library(源碼)的情況時(shí),會(huì)遇到在每個(gè)項(xiàng)目中都要有一套library的代碼的情況,對(duì)于還在開(kāi)發(fā)和維護(hù)中的Library需要頻繁的修改,這對(duì)同步就很麻煩,為了解決這個(gè)問(wèn)題,出現(xiàn)了下面的解決方案。

首先:新建一個(gè)類庫(kù)工程,工程名為AppLibs.Dev。


在該類庫(kù)中包含一個(gè)公共的類庫(kù)appLibs的Module,Module下面的build.gradle配置如下:

<pre code_snippet_id="2261040" snippet_file_name="blog_20170313_1_8450148" name="code" class="java">/** 聲明是Android類庫(kù) */ apply plugin: 'com.android.library' android { /** 為了能夠支持該庫(kù)中的包 */ useLibrary 'org.apache.http.legacy' /** 編譯SDK的版本 */ compileSdkVersion 25 /** build tools的版本 */ buildToolsVersion "25.0.2" defaultConfig { minSdkVersion 9 targetSdkVersion 25 versionCode 100 versionName "1.0.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { debug { // debug模式 } release { // 是否進(jìn)行混淆 minifyEnabled false // 混淆文件的位置 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } /** 移除lint檢查的error */ lintOptions { abortOnError false } } dependencies { /** compile fileTree將libs文件夾中所有的jar文件全部編譯。該方式和compile files方式選一種即可。 */ // compile fileTree(include: ['*.jar'], dir: 'libs') /** compile files將libs文件夾中單一的jar文件編譯 */ compile files('libs/jsch-0.1.53.jar') compile files('libs/commons-net-3.3.jar') compile files('libs/okhttp-3.2.0.jar') compile files('libs/okio-1.6.0.jar') /** 測(cè)試編譯 */ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) /** 編譯指定包名下面模塊 */ compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7' /** 單元測(cè)試編譯 */ testCompile 'junit:junit:4.12' }</pre>

這樣一個(gè)類庫(kù)工程就建好了,接下來(lái)就是引用包含該類庫(kù)的工程。

其次:引用該類庫(kù)工程。通過(guò)Android Studio新建一個(gè)TestProject的工程,如下圖。


在該工程中需要做以下三件事:

1、在project的settings.gradle里面增加紅框圈住部分的代碼。

2、在module的build.gradle文件中增加紅框圈住部分的代碼:



如果該類庫(kù)工程中包含多個(gè)module,那么在settings.gradle文件中原有代碼后面增加下面的代碼即可:

include ':AppLibs.Dev:moduleName'

同時(shí)在APP module中build.gradle增加相應(yīng)的模塊代碼即可:

compile project(':AppLibs.Dev:moduleName')

3、點(diǎn)擊Android Studio的菜單中的Build->Clean Project,完成Clean以后就看到如下圖。



完成如上圖所示以后,表示類庫(kù)工程已經(jīng)被APP工程引用進(jìn)去了,這樣以后再修改類庫(kù)工程中的源碼,其他引用該類庫(kù)的工程中源碼也就同步修改了。



查看完整回答
反對(duì) 回復(fù) 2019-09-07
  • 4 回答
  • 0 關(guān)注
  • 2403 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)