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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Maven進行組件化發布(下)

jf_78858299 ? 來源:小余的自習室 ? 作者:小余的自習室 ? 2023-03-30 11:37 ? 次閱讀

如何封裝一個通用發布版本

步驟1:在項目根目錄下創建:

maven_publish.gradle
apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            // 是否快照版本
            def isSnapShot = Boolean.valueOf(MAVEN_IS_SNAPSHOT)
            def versionName = MAVEN_VERSION
            if (isSnapShot) {
                versionName += "-SNAPSHOT"
            }
            // 組件信息
            pom.groupId = MAVEN_GROUP_ID
            pom.artifactId = MAVEN_ARTIFACTID
            pom.version = versionName

            // 快照倉庫路徑
            snapshotRepository(url: uri(MAVEN_SNAPSHOT_URL)) {
                authentication(userName: MAVEN_USERNAME, password: MAVEN_USERNAME)
            }
            // 發布倉庫路徑
            repository(url: uri(MAVEN_RELEASE_URL)) {
                authentication(userName: MAVEN_USERNAME, password: MAVEN_USERNAME)
            }

            println("###################################"
                    + "\\nuploadArchives = " + pom.groupId + ":" + pom.artifactId + ":" + pom.version + "." + pom.packaging
                    + "\\nrepository =" + (isSnapshot ? MAVEN_SNAPSHOT_URL : MAVEN_RELEASE_URL)
                    + "\\n###################################"
            )
        }
    }
}

這段腳本會讀取 MAVEN_IS_SNAPSHOT 配置參數,如果為 true,會在版本號后追加 -SNAPSHOT 后綴,表示快照版本。隨后聲明了兩個倉庫:repository(…) 聲明的是 Release 倉庫地址,而 snapshotRepository(…) 聲明的是快照倉庫地址。Maven 會自動將版本號帶 -SNAPSHOT 后綴的組件發布到 snapshotRepository(…) 倉庫中,這樣就 自動將正式版本和快照版本分發的不同倉庫中。

步驟2:聲明項目級gradle.properties配置參數:

MAVEN_SNAPSHOT_URL = /Users/yuhb/workspace/public/DemoHall/snapshotRepository
MAVEN_RELEASE_URL = /Users/yuhb/workspace/public/DemoHall/releaseRepository
MAVEN_USERNAME = 
MAVEN_PASSWORD = 
MAVEN_IS_SNAPSHOT = true
MAVEN_GROUP_ID = com.yuhb.demo

| 參數描述 |

MAVEN_SNAPSHOT_URL 快照倉庫地址
MAVEN_RELEASE_UR 發布倉庫地址
MAVEN_USERNAME 倉庫賬號
MAVEN_PASSWORD 倉庫密碼
MAVEN_IS_SNAPSHOT 是否快照版本
MAVEN_GROUP_ID 組織 / 公司的名稱
MAVEN_ARTIFACTID 組件的名稱(在發布模塊配置)
MAVEN_VERSION 組件的版本(在發布模塊配置)

步驟 3:在發布模塊應用腳本

apply from: '../maven.gradle'
...

步驟 4:在發布模塊配置參數 (模塊級配置參數會覆蓋項目級配置參數)

模塊級 gradle.properties

MAVEN_ARTIFACTID = maven
MAVEN_VERSION = v1.0.0
MAVEN_IS_SNAPSHOT = true
...

然后在Gradle面板中找到對應模塊下的任務uploadArchives,執行成功后就可以將組建發布對應的maven私服上了

本地aar文件引入的一些技巧:

模塊級build.gradle

dependencies {
    ...
    api(name: 'lib-debug', ext: 'aar')
}

repositories {
    flatDir {
        dirs "libs"
    }
}

這種方式如果其他模塊需要使用就不方便:

方法1

在項目級build.gradle

allprojects {
    repositories {
        google()
        mavenCentral()
        flatDir { dirs project(':aarlib').file('libs') } // 文件夾要放在某個 module 內
    }
}

這種方式可以在本工程中使用,如果跨工程或者跨設備就不好使了

方法2:二次打包aar發布到maven倉庫

apply plugin: 'maven-publish'

def libPath = project.getProjectDir().getAbsolutePath()

publishing {
    publications {
        lib1(MavenPublication) {
            groupId MAVEN_GROUP_ID
            artifactId "lib"
            version "v1.0.0"
            artifact(libPath + "/libs/lib.aar")
        }

        lib2(MavenPublication) {
            groupId MAVEN_GROUP_ID
            artifactId "lib2"
            version "v1.0.0"
            artifact(libPath + "/libs/lib2.aar")
        }
    }
    repositories {
        maven {
            // 發布倉庫路徑
            url MAVEN_RELEASE_URL

            // 本地倉庫地址不適用賬號密碼
            // > Failed to publish publication 'maven' to repository 'maven'
            // > Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
            // credentials(PasswordCredentials) {
            //     username = MAVEN_USERNAME
            //     password = MAVEN_PASSWORD
            // }
        }
    }
}

好了,本文就講解到這里了,基本涵蓋了關于Maven倉庫如何使用的大部分知識盲點,內容較多,大家可以收藏起來慢慢消化。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發
    +關注

    關注

    0

    文章

    373

    瀏覽量

    41405
  • maven
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3860
  • gradle
    +關注

    關注

    0

    文章

    26

    瀏覽量

    863
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Maven 配置指南

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

    使用IDEA創建Maven工程的開發步驟

    Hibernate學習筆記:IDEAMaven工程使用Hibernate示例
    發表于 05-07 10:56

    無法在發布模式進行編譯

    無法在發布模式進行編譯以上來自于谷歌翻譯以下為原文 Compiling in release mode not possible
    發表于 05-13 08:15

    LinuxMaven安裝方法

    關鍵步驟如下: 1. 下載Maven包. 2. 解壓Maven包. 3.配置Maven系統參數,驗證Maven是否正確安裝.
    發表于 07-23 08:01

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

    。開發的腳步永不停歇,在廣大組件貢獻者的共同努力,又迎來了第三批組件開源。 一、新增開源組件概覽本次新增開源組件,涉及工具、網絡、文件數據
    發表于 11-18 11:17

    YoC組件發布開源操作指南須知

    package節點可以看到添加的組件。2.1.3 創建開發倉庫開發者獲取解決方案或組件代碼后,可以根據自身的需求在代碼托管平臺上創建組件開發倉庫,
    發表于 03-09 07:37

    Maven工具生成Mybatis的代碼及映射的文件

    本文介紹一Maven工具如何生成Mybatis的代碼及映射的文件。
    發表于 11-29 11:37 ?2166次閱讀
    <b class='flag-5'>Maven</b>工具生成Mybatis的代碼及映射的文件

    Maven管理的jar沒有發布到WEB-INFlib應該如何解決詳細方案說明

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

    Linux環境安裝Maven的步驟

    安裝maven的第一步呢,我們首先得有maven這個東西,我們去它的官網下載永遠是最新最權威的,作為開發人員,我們必須要有這種意識,也要養成下載東西去其官網下載的好習慣。
    的頭像 發表于 02-08 17:44 ?2677次閱讀
    Linux環境<b class='flag-5'>下</b>安裝<b class='flag-5'>Maven</b>的步驟

    如何使用Maven進行組件發布(上)

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

    如何使用Maven進行組件發布(中)

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

    如何理解Maven拉包原理,搞定Maven構建項目

    依賴是我們在使用 Maven 構建項目時最常使用的功能,通過依賴標簽,我們可以直接從Maven倉庫中引入對應的Jar包,無需手動再將Jar添加到目錄下了,可謂是十分方便,不過我們除了使用,還需要考慮多模塊依賴之間的關系。
    發表于 05-25 09:50 ?788次閱讀
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>構建項目

    idea配置了maven但不顯示pom

    配置 Maven 是一個開發者常見的任務,通過 Maven 可以更方便地管理項目依賴和構建過程。在配置 Maven 的過程中,我們可能會遇到一些問題,比如沒有正確顯示 pom 文件。本文將詳細介紹
    的頭像 發表于 12-06 14:17 ?4111次閱讀

    idea如何添加maven

    Maven是一個開源的項目管理工具,它提供了一種簡單的方式來管理項目的依賴關系、構建過程和發布部署。本文將詳細介紹如何將Maven添加到你的項目中,并使用它來管理你的項目。 第一步:安裝Mav
    的頭像 發表于 12-06 14:56 ?1545次閱讀

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

    使用Nexus在本地搭建npm、yum和maven私有倉庫 為保證在無互聯網的情況,可正常搭建、構建項目,并自動部署項目,本系統采用Nexus+Jenkins+Maven+Gitl
    的頭像 發表于 08-21 14:46 ?578次閱讀
    使用Nexus在本地搭建npm、yum和<b class='flag-5'>maven</b>私有倉庫
    主站蜘蛛池模板: 日本一线a视频免费观看 | 人人做人人爽 | 不卡免费在线视频 | 亚洲欧美日韩高清mmm777 | free性欧美video| 888米奇在线视频四色 | 美女被啪到哭网站在线观看 | 激情综合在线 | 视频网站黄色 | 手机在线观看国产精选免费 | 亚洲性久久久影院 | 午夜视频在线网站 | 水果视频色版 | 国内精品99| 韩国理论三级在线观看视频 | 国产黄色网页 | 国产98在线传媒在线视频 | 99 久久99久久精品免观看 | 亚洲 丝袜 制服 欧美 另类 | 午夜高清在线观看免费6 | 国产成人亚洲精品77 | 午夜在线视频观看版 | 国产国语videosex另类 | 四虎影院色 | 日本a级精品一区二区三区 日本a级特黄三级三级三级 | 日韩啪啪片 | 亚洲久久久 | 五月激激 | 国产精品成人观看视频国产奇米 | 西西人体www303sw大胆高清 | 欧美一级免费 | 久操免费在线视频 | 久久99精品久久久久久牛牛影视 | 手机福利在线观看 | 国产精品午夜久久 | 色五月视频 | 国产乱辈通伦影片在线播放亚洲 | xxxxxx日本人免费 | 亚洲韩国欧美一区二区三区 | 久久久久国产一级毛片高清版 | 国产伦精品一区二区三区网站 |