gradle 上传jar包_Gradle学习记录014 关于依赖的声明
詳細(xì)學(xué)習(xí)Gradle構(gòu)建的依賴聲明。該學(xué)習(xí)記錄基于Gradle官方網(wǎng)站資料。本篇參考鏈接如下:
https://docs.gradle.org/current/userguide/declaring_dependencies.html
聲明一個模塊作為依賴
通常聲明一個模塊作為依賴,需要指定這個模塊的版本。Gradle提供了一套機(jī)制,允許指定動態(tài)的版本。
指定固定版本
dependencies { // 固定版本一旦指定就不會變化 implementation 'org.springframework:spring-web:5.0.2.RELEASE'}不指定版本的依賴
比較大的項(xiàng)目可能不會去單獨(dú)指定依賴的版本,而是使用constraints來統(tǒng)一管理版本
dependencies { // 這里沒有指定依賴的版本 implementation 'org.springframework:spring-web'}dependencies { constraints { // 在constraints內(nèi)部指定版本 implementation 'org.springframework:spring-web:5.0.2.RELEASE' }}動態(tài)指定版本
dependencies { // 這里指定版本必須為5以上 implementation 'org.springframework:spring-web:5.+'}通常,Gradle會在緩存中保存上一次取得的版本24小時。24小時之后如果發(fā)現(xiàn)有更新的版本,會去取得更新的版本。
指定未完成版本
dependencies { implementation 'org.springframework:spring-web:5.0.3.BUILD-SNAPSHOT'}如上,一般帶有-SNAPSHOT后綴的版本是還在開發(fā)中的版本。和動態(tài)指定一樣, 24小時后會到倉庫中尋找是否有更新版本。
通過參數(shù)指定版本
dependencies { implementation('org.slf4j:slf4j-api') { version { strictly '[1.7, 1.8[' prefer '1.7.25' } } constraints { implementation('org.springframework:spring-core') { version { require '4.2.9.RELEASE' reject '4.3.16.RELEASE' } } }}聲明文件依賴
有時可能會需要一些文件依賴, 這些文件保存在本地或者遠(yuǎn)程的共享文件夾中。這種共享文件夾式的倉庫時沒有.metadata的。
所以需要指定文件的名字
configurations { antContrib externalLibs deploymentTools}dependencies { antContrib files('ant/antcontrib.jar') externalLibs files('libs/commons-lang.jar', 'libs/log4j.jar') deploymentTools(fileTree('tools') { include '*.exe' })}聲明工程依賴
多工程構(gòu)建的時候, 經(jīng)常會發(fā)生工程間的依賴。
project(':web-service') { dependencies { implementation project(':utils') implementation project(':api') }}指定特定的資源
以下三種情況,可能需要指定特定的資源,而不時把整個jar包或者特定資源的傳遞依賴都下載到本地。
1 這個依賴時一個非標(biāo)準(zhǔn)資源, 比如一個zip文件
2 模塊的.metadata定義了多個資源,但是我們只想要其中之一
3 我們只想要模塊中的一個資源, 兒不需要它的傳遞依賴
下面的示例展示了從一個模塊中只取得js類庫
repositories { ivy { url 'https://ajax.googleapis.com/ajax/libs' patternLayout { artifact '[organization]/[revision]/[module](.[classifier]).[ext]' } }}configurations { js}dependencies { js 'jquery:jquery:3.2.1:min@js'}Classifier表示資源的種類。比如java的情況下,可能java的class在一個jar包中,它的源代碼在另一個包中,它的javadoc在第三個包中。
那么這三個包的名字中會用classifier來表明不同。比如
XXXX.jar
XXXX.sources.jar
XXXX.javadoc.jar
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的gradle 上传jar包_Gradle学习记录014 关于依赖的声明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么叫诚实_他爱不爱你,身体最诚实
- 下一篇: 天玑720支持鸿蒙系统吗,天玑720属于