在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Maven進(jìn)行組件化發(fā)布(上)

jf_78858299 ? 來源:小余的自習(xí)室 ? 作者:小余的自習(xí)室 ? 2023-03-30 11:36 ? 次閱讀

現(xiàn)如今已經(jīng)不是以前單兵作戰(zhàn)時(shí)代,越來越多的需求,促使我們項(xiàng)目去實(shí)現(xiàn)動(dòng)態(tài)組件化開發(fā)。

這個(gè)時(shí)候組件化發(fā)布共享就顯的尤為重要。

這篇文章我們就來講解下如何使用Maven進(jìn)行組件化發(fā)布

在講解組件化發(fā)布之前,我們先來了解一些基礎(chǔ)概念

基礎(chǔ)概念:

1.POM

pom:全名Project Object Model 項(xiàng)目對(duì)象模型,用來描述當(dāng)前maven項(xiàng)目發(fā)布模塊的基礎(chǔ)信息

pom主要節(jié)點(diǎn)信息如下:

配置 描述 舉例('com.android.tools.build:gradle:4.1.1')
groupId 組織 / 公司的名稱 com.android.tools.build
artifactId 組件的名稱 gradle
version 組件的版本 4.1.1
packaging 打包的格式 aar

2.倉庫

我們?cè)陂_發(fā)中經(jīng)常使用到第二/三方插件或者第二/三方庫,就是存儲(chǔ)在倉庫中的

2.1:倉庫種類:

  • 本地倉庫 :存儲(chǔ)在本地設(shè)備中的倉庫以及遠(yuǎn)程倉庫中下載保存的倉庫,統(tǒng)稱為本地倉庫

  • 私有倉庫 :公司內(nèi)部倉庫,比如是有maven私服搭建的局域網(wǎng)倉庫

  • 中央倉庫 :開源社區(qū)倉庫,我們平時(shí)使用的第三方插件或者類庫一般都存儲(chǔ)在中央倉庫,比如Maven Central,阿里的國(guó)內(nèi)鏡像庫等

    圖片

    1.maven庫介紹.png

2.2:倉庫構(gòu)建順序:

  • 1.在本地倉庫中查找對(duì)應(yīng)的類庫,沒有找到執(zhí)行2
  • 2.按照repositories中聲明的倉庫順序,在私有倉庫和中央倉庫查找對(duì)應(yīng)的類庫,找到則將類庫版本信息下載到本地倉庫,沒找到則執(zhí)行3
  • 3.前面都沒找到對(duì)應(yīng)的類庫或者類庫版本,則拋出異常‘沒找到對(duì)應(yīng)的類庫

圖片

倉庫執(zhí)行順序.awebp

2.3:倉庫聲明方式:

項(xiàng)目build.gradle:

buildscript {
    repositories {
        [Gradle 插件的倉庫]        
    }
}
allprojects {
    repositories {
        [項(xiàng)目中所有模塊依賴的倉庫]  
    }
}

模塊內(nèi)build.gradle:

repositories{
    [當(dāng)前模塊依賴的倉庫]
}

gradle支持的倉庫類型:

repositories{
    maven { url '...' }
    ivy { url '...' }
    flatDir { dirs '...' }
}

常用的中央倉庫:

google()        // https://dl.google.com/dl/android/maven2/
mavenCentral()   // https://repo.maven.apache.org/maven2/
jCenter()

網(wǎng)絡(luò)不好的情況下,訪問上面的中央倉庫會(huì)有點(diǎn)慢:可以開考慮使用國(guó)內(nèi)鏡像代理

maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}

3.有了Release版本為啥還需要SNAPSHOT

區(qū)別

  • 1.Release版本每次升級(jí)都需要更新版本,而SNAPSHOT不需要更新版本,使用原版本即可
  • 2.Release版本如果版本沒有更新不需要每次都去下載,除非本地倉庫被清除,而SNAPSHOT版本每次編譯都需要去中央倉庫更新版本信息
  • 3.常規(guī)Release版本是發(fā)布上線的版本,SNAPSHOT是測(cè)試版本。
  • 4.版本名:Release版本:1.0.0,SNAPSHOT版本:1.0.0-SNAPSHOT

使用場(chǎng)景

A和B共同開發(fā),如果A修改了代碼,

使用常規(guī)Release版本則需要每次都發(fā)布一個(gè)新版本,如果不小心忘記增加版本,B則無法收到更新后的版本,

造成代碼不同步,后期會(huì)出現(xiàn)不可預(yù)料的bug。

使用SNAPSHOT只要A發(fā)布了版本,B在每次編譯時(shí)就可以立即收到A的類庫更新信息,可以實(shí)時(shí)同步代碼。

SNAPSHOT以犧牲編譯時(shí)間換取代碼之間的立即可見度,缺點(diǎn)就是在網(wǎng)絡(luò)較差的情況下代碼編譯時(shí)間可能常常比較慢。

如何發(fā)布組件:

1.發(fā)布到本地倉庫:

模塊級(jí):build.gradle

plugins {
    id 'groovy' // Groovy Language
//    id 'org.jetbrains.kotlin.jvm' // Kotlin
    id 'java-gradle-plugin' // Java Gradle Plugin

    id 'maven'
}
...
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url:uri('D:/maven_local'))
            pom.groupId = 'com.yuhb.upload'
            pom.artifactId = 'upload'
            pom.version = '1.0.1'
        }
    }
}

同步模塊后:點(diǎn)擊Gradle面板中對(duì)應(yīng)模塊下Tasks:upload里面的uploadArchives任務(wù)

如果執(zhí)行成功:則會(huì)在對(duì)應(yīng)的本地目錄下找到類庫信息:

2.搭建maven私服創(chuàng)建私有倉庫:

簡(jiǎn)介

maven私服其實(shí)就是在部門·局域網(wǎng)·中設(shè)置一個(gè)maven倉庫,所有在局域網(wǎng)中的開發(fā)人員都可以使用該倉庫:

PS:私服中可以添加自己本地的倉庫,也可以代理中央倉庫中的包。畢竟對(duì)于一些網(wǎng)絡(luò)比較差的環(huán)境,去中央倉庫里面獲取數(shù)據(jù)是一個(gè)很耗時(shí)的操作

優(yōu)點(diǎn)

1.節(jié)省自己的外部帶寬:

2.加速構(gòu)建過程

3.可以部署第三方構(gòu)件

4.提高穩(wěn)定性,增強(qiáng)控制

5.降低中央倉庫的負(fù)荷

圖片

maven私服優(yōu)勢(shì).png

如何搭建Maven私服

1.去官網(wǎng)下載 maven私服啟動(dòng)器 nexus:

地址:https://www.sonatype.com/

2.下載后,配置環(huán)境變量后:

在命令行輸入:nexus /run

3.nexus啟動(dòng)成功后:在瀏覽器中輸入:
http://localhost:8081/
  • 啟動(dòng)界面如下:

圖片

2.nexus界面.png

點(diǎn)擊右上角的sign in按鈕:

輸入用戶名和密碼

用戶名和密碼系統(tǒng)會(huì)提示在哪個(gè)目錄下

4.登錄成功后:
  • 點(diǎn)擊導(dǎo)航欄的設(shè)置按鈕-->repository進(jìn)入倉庫列表

圖片

3.倉庫搭建.png

圖片

4倉庫.png

  • 點(diǎn)擊create Repository創(chuàng)建一個(gè)新的本地局域網(wǎng)倉庫:

因?yàn)槲覀兪菫锳ndroid項(xiàng)目創(chuàng)建的maven倉庫選擇maven2:

這里有三個(gè)maven2類型倉庫:

*hosted*:本地局域網(wǎng)私服,像官方倉庫一樣,提供本地私庫功能

*proxy*:提供代理其他倉庫的功能,表示這個(gè)repository可以代理遠(yuǎn)程倉庫,比如jcenter google 等遠(yuǎn)程中央倉庫

*group*:組合多個(gè)倉庫為一個(gè)地址使用

這里我們選擇hosted倉庫即可,大家可以根據(jù)自己需求選取

1.輸入倉庫名稱

2.設(shè)置maven類型:

*release*:表示是一個(gè)該倉庫存儲(chǔ)的是一個(gè)release版本的第三方庫

*snapshot*:表示存儲(chǔ)的是一個(gè)不穩(wěn)定第三方庫,需要進(jìn)程去私服或者中央倉庫拉數(shù)據(jù):


    
        ****class="hljs-name"id>
        ***class="hljs-name"url>
        
            trueclass="hljs-name"enabled>
            (always/ daliy/  interval/ never)class="hljs-name"updatePolicy>
        class="hljs-name"snapshot>
    class="hljs-name"repository>
class="hljs-name"repository>

updatePolicy:表示更新的頻率:

`always`:每次都需要拉去 `    daliy`:表示每天需要拉取 `    interval`:按分鐘拉取 `    nerver`:和release版本一樣,不需要重復(fù)拉取

點(diǎn)擊確定后就創(chuàng)建的一個(gè)maven私服:

點(diǎn)擊該倉庫就可以看到對(duì)應(yīng)的url,這個(gè)url就是我們私服的地址。需要在項(xiàng)目中引用:

經(jīng)過上面的步驟后,我們就搭建好了一個(gè)maven私服,局域網(wǎng)內(nèi)用戶都可以拉取使用

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    370

    瀏覽量

    40843
  • maven
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    3712
  • gradle
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    717
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Maven 配置指南

    Maven 配置指南http://bbs.edu118.com/forum.php?mod=viewthread&tid=263&fromuid=231(出處: 信盈達(dá)IT技術(shù)社
    發(fā)表于 08-28 15:08

    在Linux平臺(tái)下面安裝Maven步驟說明

    Apache Maven,是一個(gè)軟件(特別是Java軟件)項(xiàng)目管理及自動(dòng)構(gòu)建工具,由Apache軟件基金會(huì)所提供。基于項(xiàng)目對(duì)象模型(縮寫:POM)概念,Maven利用一個(gè)中央信息片斷能管理一個(gè)項(xiàng)目
    發(fā)表于 07-23 06:14

    Linux下的Maven安裝方法

    關(guān)鍵步驟如下: 1. 下載Maven包. 2. 解壓Maven包. 3.配置Maven系統(tǒng)參數(shù),驗(yàn)證Maven是否正確安裝.
    發(fā)表于 07-23 08:01

    HarmonyOS組件更新,新增700+開源組件

    適當(dāng)?shù)臅r(shí)間進(jìn)行動(dòng)畫處理。如圖5所示,ohos-spruce輕松實(shí)現(xiàn)了屏幕動(dòng)畫的編排。圖5 ohos-spruce效果展示源碼下載地址:https://gitee.com/hihopeorg
    發(fā)表于 11-18 11:17

    YoC組件發(fā)布開源操作指南須知

    ,然后將代碼上傳到master分支和dev分支,打上標(biāo)簽進(jìn)行發(fā)布,標(biāo)簽遵循vX.Y.Z版本規(guī)則,初始版本號(hào)組件管理員自己定義。3.2 現(xiàn)有組件內(nèi)部開發(fā)者提交
    發(fā)表于 03-09 07:37

    MyEclipse環(huán)境搭建Maven的開發(fā)環(huán)境

    一:Maven的下載安裝 1、安裝環(huán)境:win7 旗艦版 + MyEclipse2014 2、前置條件:JDK (本人用的jdk1.8) 3、maven下載: 說明:maven依賴于jdk,所以搭建
    發(fā)表于 11-28 16:13 ?1375次閱讀

    Maven管理的jar沒有發(fā)布到WEB-INFlib下應(yīng)該如何解決詳細(xì)方案說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Maven管理的jar沒有發(fā)布到WEB-INFlib下應(yīng)該如何解決詳細(xì)方案說明。
    發(fā)表于 05-30 17:07 ?9次下載
    <b class='flag-5'>Maven</b>管理的jar沒有<b class='flag-5'>發(fā)布</b>到WEB-INFlib下應(yīng)該如何解決詳細(xì)方案說明

    干貨:在Windows安裝Maven及配置

    干貨:在Windows安裝Maven及配置
    的頭像 發(fā)表于 06-20 09:24 ?2789次閱讀
    干貨:在Windows<b class='flag-5'>上</b>安裝<b class='flag-5'>Maven</b>及配置

    基于AndroidCrop進(jìn)行鴻蒙的開源圖片裁剪組件

    本項(xiàng)目是基于開源項(xiàng)目 AndroidCrop 進(jìn)行鴻蒙的移植和開發(fā)的,可以通過項(xiàng)目標(biāo)簽以及github地址( https://github.com/jdamcd/android-crop )追蹤到
    發(fā)表于 03-23 09:53 ?2次下載

    如何使用Maven進(jìn)行組件發(fā)布(中)

    這個(gè)時(shí)候組件發(fā)布共享就顯的尤為重要。 這篇文章我們就來講解下如何使用`Maven進(jìn)行組件
    的頭像 發(fā)表于 03-30 11:36 ?885次閱讀
    如何使用<b class='flag-5'>Maven</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>組件</b><b class='flag-5'>化</b><b class='flag-5'>發(fā)布</b>(中)

    如何使用Maven進(jìn)行組件發(fā)布(下)

    這個(gè)時(shí)候組件發(fā)布共享就顯的尤為重要。 這篇文章我們就來講解下如何使用`Maven進(jìn)行組件
    的頭像 發(fā)表于 03-30 11:37 ?942次閱讀

    如何理解Maven拉包原理,搞定Maven構(gòu)建項(xiàng)目

    依賴是我們?cè)谑褂?Maven 構(gòu)建項(xiàng)目時(shí)最常使用的功能,通過依賴標(biāo)簽,我們可以直接從Maven倉庫中引入對(duì)應(yīng)的Jar包,無需手動(dòng)再將Jar添加到目錄下了,可謂是十分方便,不過我們除了使用,還需要考慮多模塊下依賴之間的關(guān)系。
    發(fā)表于 05-25 09:50 ?594次閱讀
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>構(gòu)建項(xiàng)目

    idea配置了maven但不顯示pom

    Maven 正確安裝,應(yīng)該會(huì)顯示 Maven 的版本信息。 接下來,我們需要配置 Maven 的環(huán)境變量。在 Windows ,可以按如下步
    的頭像 發(fā)表于 12-06 14:17 ?3223次閱讀

    idea如何添加maven

    Maven是一個(gè)開源的項(xiàng)目管理工具,它提供了一種簡(jiǎn)單的方式來管理項(xiàng)目的依賴關(guān)系、構(gòu)建過程和發(fā)布部署。本文將詳細(xì)介紹如何將Maven添加到你的項(xiàng)目中,并使用它來管理你的項(xiàng)目。 第一步:安裝Mav
    的頭像 發(fā)表于 12-06 14:56 ?1218次閱讀

    使用Nexus在本地搭建npm、yum和maven私有倉庫

    使用Nexus在本地搭建npm、yum和maven私有倉庫 為保證在無互聯(lián)網(wǎng)的情況下,可正常搭建、構(gòu)建項(xiàng)目,并自動(dòng)部署項(xiàng)目,本系統(tǒng)采用Nexus+Jenkins+Maven+Gitlab開源
    的頭像 發(fā)表于 08-21 14:46 ?332次閱讀
    使用Nexus在本地搭建npm、yum和<b class='flag-5'>maven</b>私有倉庫
    主站蜘蛛池模板: 国产亚洲精品美女久久久| 自偷自拍亚洲欧美清纯唯美| 美女被曹| 欧美性猛交xxxx乱大交| 午夜三级网| 亚洲性人人天天夜夜摸| 26uuu影院亚洲欧美综合| 一级a毛片免费观看| 久久久五月天| 午夜在线观看免费| 成人免费黄色网| 老师你好滑下面好湿h| 特极毛片| 黄色福利小视频| 天天射天天干| 国产精品臀控福利在线观看| 99热热热| 欧美日韩在线成人免费| 福利片第一页| 久久久午夜毛片免费| 最新日韩中文字幕| 欧美国产一区二区二区| 2018天堂视频免费观看| 国产国产成人人免费影院| 男女视频在线观看免费| 色视频在线看| 成人国产日本亚洲精品| 久操青青| 99久热| 黄色片免费看视频| 全部免费特黄特色大片视频| 又色又爽的视频| 色月| 宅宅午夜亚洲精品| 欧美人与zoxxxx另类9| 日韩第五页| 亚洲 美腿 欧美 偷拍| 5566成人免费视频观看| 你懂得福利| 欧美午夜免费观看福利片| 男人j进女人j的视频一进一出 |