欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

【gradle】從settings.gradle說起-創(chuàng)新互聯(lián)

gradle 系列

gradle下載配置

為龍井等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及龍井網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、龍井網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

【gradle】從 settings.gradle說起
  • gradle 系列
  • 前言
  • 1、settings.gradle
  • 2、依賴
    • 2.1、依賴的方式
      • 直接依賴
      • 項(xiàng)目依賴:從項(xiàng)目的某個(gè)模塊依賴另一個(gè)模塊
      • 本地 jar 依賴:本地 jar 文件依賴
    • 2.2、依賴的下載
    • 2.3、依賴的類型
      • api 與implementation 區(qū)別
    • 2.3、解決依賴沖突
      • 2.3.1、默認(rèn)Gradle 會(huì)使用最新版本的 jar 包
      • 2.3.2、強(qiáng)制使用某個(gè)版本
  • 3、插件
    • 3.1、內(nèi)部插件
    • 3.2、第三方插件
  • 4、build.gradle
    • 4.1、repository
    • 4.2、Subprojects 與 Allprojects
    • 4.3、ext
    • 4.4、buildscript
  • 總結(jié)


前言

1、在搭建好 spring 5 源碼后,在自己編寫測(cè)試用例和添加測(cè)試 module 時(shí),會(huì)遇到一些配置報(bào)錯(cuò)信息,由于不了解 gradle 配置文件的語法和含義,產(chǎn)生了一些困擾,因此在這里學(xué)習(xí)一下 gradle 一些配置文件語法。
2、gradle 官網(wǎng):https://gradle.org/


1、settings.gradle

一個(gè) gradle 工程中只能有一個(gè)settings.gradle文件

settings.gradle 文件的語法,這里參考spring 源碼的 settings 文件

settings.gradle

項(xiàng)目名稱中:代表項(xiàng)目的分隔符, 類似路徑中的/. 如果以:開頭則表示相對(duì)于 root project

//根工程項(xiàng)目名
rootProject.name = 'root'
//包含的子工程名稱
include 'subject01' 
include 'subject02' 
include 'subject03'
//包含的子工程下的子工程名稱
include 'subject01:subproject011' 
include 'subject01:subproject012'

2、依賴
2.1、依賴的方式

Gradle 中的依賴分別為直接依賴,項(xiàng)目依賴,本地jar 依賴

直接依賴
dependencies {//①.依賴當(dāng)前項(xiàng)目下的某個(gè)模塊[子工程]
implementation project(':spring-aop')
//②.直接依賴本地的某個(gè)jar文件
implementation files('libs/foo.jar', 'libs/bar.jar')
//②.配置某文件夾作為依賴項(xiàng)
implementation fileTree(dir: 'libs', include: ['*.jar'])
//③.直接依賴 簡寫
implementation 'org.apache.logging.log4j:log4j:2.17.2'
//③.直接依賴 完整版 group/name/version 同 maven 的 GAV
implementation group: 'org.apache.logging.log4j', name: 'log4j', version: '2.17.2'
}
項(xiàng)目依賴:從項(xiàng)目的某個(gè)模塊依賴另一個(gè)模塊

例如:spring-context 依賴 spring-aop

implementation project(':spring-aop')
本地 jar 依賴:本地 jar 文件依賴

一般包含以下兩種方式

/直接依賴某文件
implementation files('libs/foo.jar', 'libs/bar.jar')
//配置某文件夾作為依賴項(xiàng)
implementation fileTree(dir: 'libs', include: ['*.jar'])
2.2、依賴的下載

當(dāng)執(zhí)行 build 命令時(shí),gradle 就會(huì)去配置的依賴倉庫中下載對(duì)應(yīng)的 Jar,并應(yīng)用到項(xiàng)目中。

2.3、依賴的類型

類似于 Maven 的 scope 標(biāo)簽

類型作用補(bǔ)充
compileOnly適用于編譯期需要而不需要打包的情況
runtimeOnly只在運(yùn)行期有效,編譯時(shí)不需要取代老版本中被移除的 runtime
implementation針對(duì)源碼[src/main 目錄] ,在編譯、運(yùn)行時(shí)都有效取代老版本中被移除的 compile
testCompileOnly用于編譯測(cè)試的依賴項(xiàng),運(yùn)行時(shí)不需要
testRuntimeOnly只在測(cè)試運(yùn)行時(shí)需要,而不是在測(cè)試編譯時(shí)需要取代老版本中被移除的testRuntime
testImplementation針對(duì)測(cè)試代碼[src/test 目錄]取代老版本中被移除的testCompile
providedCompilewar 插件提供支持,編譯、測(cè)試階段代碼需要依賴此類jar 包,而運(yùn)行階段容器已經(jīng)提供了相應(yīng)的支持,所以無需將這些文件打入到war 包中了例如servlet-api.jar、jsp-api.jar
compile編譯范圍依賴在所有的 classpath 中可用,同時(shí)它們也會(huì)被打包在 gradle 7.0 已經(jīng)移除
runtimeuntime 依賴在運(yùn)行和測(cè)試系統(tǒng)的時(shí)候需要,在編譯的時(shí)候不需要,比如mysql 驅(qū)動(dòng)包在 gradle 7.0 已經(jīng)移除
apijava-library 插件提供支持,這些依賴項(xiàng)可以傳遞性地導(dǎo)出給使用者,用于編譯時(shí)和運(yùn)行時(shí)取代老版本中被移除的 compile
compileOnlyApijava-library 插件提供支持,在聲明模塊和使用者在編譯時(shí)需要的依賴項(xiàng),但在運(yùn)行時(shí)不需要
api 與implementation 區(qū)別

例子:
區(qū)別
分析:

apiimplementation
編譯時(shí)libC 的內(nèi)容發(fā)生變化,由于使用的是 api 依賴,依賴會(huì)傳遞,所以 libC、libA、projectX 都要發(fā)生變化,都需要重新編譯,速度慢如果libD 的內(nèi)容發(fā)生變化,由于使用的是implemetation 依賴,依賴不會(huì)傳遞,只有l(wèi)ibD、libB 要變化并重新編譯,速度快
運(yùn)行時(shí)libC、libA、projectX 中的class 都要被加載api相同
總結(jié)多數(shù)情況下使用implementation

拓展:


在這里插入圖片描述


2.3、解決依賴沖突

例子:

在這里插入圖片描述

2.3.1、默認(rèn)Gradle 會(huì)使用最新版本的 jar 包

新版本的 jar 包一般都是向下兼容的(建議使用官方自帶的這種解決方案)

2.3.2、強(qiáng)制使用某個(gè)版本
dependencies {testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' 
	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' 
	//強(qiáng)制使用某個(gè)版本!!【官方建議使用這種方式】
	implementation('org.slf4j:slf4j-api:1.4.0!!')
	//這種效果和上面那種一樣,強(qiáng)制指定某個(gè)版本
	implementation('org.slf4j:slf4j-api:1.4.0'){version{strictly("1.4.0")
	}
}
3、插件

在這里插入圖片描述


3.1、內(nèi)部插件
configure(allprojects) {project ->group = "org.springframework"
	version = qualifyVersionIfNecessary(version)

	apply plugin: "java"
	apply plugin: "kotlin"
	apply plugin: "checkstyle"
	apply plugin: "propdeps"
	apply plugin: "test-source-set-dependencies"
	apply plugin: "io.spring.dependency-management"
	apply from: "${gradleScriptDir}/ide.gradle"
}
3.2、第三方插件

如果第三方插件已經(jīng)被托管在 https://plugins.gradle.org/

// 3rd party plugin repositories can be configured in settings.gradle
plugins {id "io.spring.dependency-management" version "1.0.7.RELEASE" apply false
	id "org.jetbrains.kotlin.jvm" version "1.2.71" apply false
	id "org.jetbrains.dokka" version "0.9.18"
	id "org.asciidoctor.convert" version "1.5.8"
	id "com.jfrog.artifactory" version '4.9.8' apply false
}
4、build.gradle

在 spring 中一般為project-name.gradle

每個(gè) module 都要自己的.gradle文件,用來配置版本、插件、依賴庫等信息

build 文件中常見的屬性和方法:

常用方法和屬性

4.1、repository

從上往下找,找到了就停止,找不到繼續(xù)往下找

1

4.2、Subprojects 與 Allprojects

對(duì)指定工程進(jìn)行配置
在這里插入圖片描述

4.3、ext

自定義屬性

ext

4.4、buildscript
  1. buildscript{}必須在 build.gradle 文件的最前端。
  2. 對(duì)于多項(xiàng)目構(gòu)建,項(xiàng)目的 buildscript ()方法聲明的依賴關(guān)系可用于其所有子項(xiàng)目的構(gòu)建腳本。

buildscript


總結(jié)

記錄了一些在嘗試建立測(cè)試模塊中不了解的內(nèi)容,之后在看源碼的過程中遇到問題再補(bǔ)充吧…

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

標(biāo)題名稱:【gradle】從settings.gradle說起-創(chuàng)新互聯(lián)
本文路徑:http://aaarwkj.com/article14/cojige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站改版、微信公眾號(hào)網(wǎng)站內(nèi)鏈、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
精彩国产av一区二区三区| 国产一级一片内射在线| 99精品国产高清一区二区三区| 日本人妻风俗店中文字幕| 在线播放国内自拍情侣酒店| 欧美激情三级一区二区| 日本中文字幕女优观看| 欧美av一区二区三区四区| 婷婷五激情五月激情片| 中文字幕免费日本在线| 国产69精品久久久久久人| 国产原创传媒在线观看| 青青草最新网址在线观看视频| 午夜国产精品福利一二| 日本视频天堂在线不卡| 亚洲中文有码一区二区| 国产精精精精品欧美日韩| 亚洲国产欲色有一二欲色| 久久精品一区二区东京热| 久久久国产精品免费看| 国产一区二区三区婷婷| 日韩女同性一区二区三区| av天堂在线观看网站| 亚洲国产理论片在线观看| 一区二区三区毛片av网站| 国产高清不卡一区二区| 韩国午夜理伦三级好看| 国产三级三级三级三级三级| 日韩av黄色大片在线播看| 国产精品综合久久久久久| 永久免费看黄在线观看| 蜜桃av一区二区三区在线| 亚洲成人午夜激情的三级网| 精品久久精品久久人妻九色| 日韩高清在线一区二区三区| 99麻豆久久久精品国产| 麻豆视频在线观看传媒| 国产精品亚洲精品日韩在线| 免费看欧美粗又大爽老| 久久精品国产91麻豆| 在线中文字幕日韩有码|