中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

gradle怎么打包發布到maven的nexus倉庫

發布時間:2021-07-15 10:34:28 來源:億速云 閱讀:414 作者:chen 欄目:大數據

這篇文章主要介紹“gradle怎么打包發布到maven的nexus倉庫”,在日常操作中,相信很多人在gradle怎么打包發布到maven的nexus倉庫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”gradle怎么打包發布到maven的nexus倉庫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前提背景

公司要封裝一個工具類,把常用的mybatis,apollo,redis,初始化運行檢查等等都封裝在一起,項目建好了,但是打包發布nexus之后,別的項目死活拉不到依賴包,經查,是gradle打包時生成的pom文件中沒有加入模塊依賴.

以前的解決方案及問題

以前公司用gradle打包的時候,先新建一個maven_push.gradle ,然后在要打包的模塊build.gradle中加上一句

apply from: '../maven_push.gradle'

maven_push.gradle的內容如下:

// The Maven plugin adds support for deploying artifacts to Maven repositories.// 一個可以讓你把庫上傳到maven倉庫的插件apply plugin: 'maven'// The signing plugin adds the ability to digitally sign built files and artifacts. These digital signatures can then be used to prove who built the artifact the signature is attached to as well as other information such as when the signature was generated.// 對庫文件進行數字簽名的插件,可以通過簽名知道誰創建了這個庫文件,簽名的時間等等信息apply plugin: 'signing'
// 聲明變量記錄maven庫地址def mavenRepositoryUrl// 判斷是發布到正式庫,還是snapshots庫if (isReleaseBuild()) {    println 'RELEASE BUILD'    // 下面的庫地址指向的是我們私有倉庫的Releases 倉庫    mavenRepositoryUrl = "http://xxx.com/repository/maven-public/"} else {    println 'SNAPSHOTS BUILD'    // 下面的庫地址指向的是我們私有倉庫的snapshots 倉庫    mavenRepositoryUrl = "http://xxxx.com/repository/maven-snapshots/"}
// 根據我們在likelib下gradle.properties中聲明的版本名稱,來分辨是Release版本還是 snapshots版本def isReleaseBuild() {    return !VERSION_NAME.contains("SNAPSHOT");}
afterEvaluate { project ->    // 我們聲明我們要執行的上傳到maven的task    uploadArchives {        repositories {            mavenDeployer {                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }                // 我們類比下compile com.squareup.okhttp:okhttp:2.7.0                // artifactId 對應com.squareup.okhttp; groupId 對應okhttp;version對應2.7.0                // 這樣就類似坐標的方式定位到了制定的庫文件                pom.artifactId = POM_ARTIFACT_ID                pom.groupId = POM_GROUP_ID                pom.version = VERSION_NAME
               // 授權驗證,這里也就是你登陸搭建的私服服務器時候的用戶名\密碼                repository(url: mavenRepositoryUrl) {                    authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())                }                // 這里是配置我們maven庫需要的pom.xml文件的各個內容,具體意思我們在主目錄gradle.properties中解釋                pom.project {                    name POM_NAME                    packaging POM_PACKAGING                    description POM_DESCRIPTION                    url POM_URL
               }            }        }    }
   // 進行數字簽名    signing {        required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }        sign configurations.archives    }
}

這樣是可以打包,但是對模塊依賴就沒辦法打包,如gradle依賴配置如下:

dependencies {  compile project(":tools-mybatis")  compile project(":tools-ops")}

但打包出來的pom.xml文件里面并沒有這兩個依賴.

新的打包方案

上述通過 maven 插件可能還有別的姿試可以打包,但是沒有找到,通過查找官方文檔,找到了以下解決方案
引入 maven-publish,這個plugin , 然后在模塊build.gradle中加入配置:

publishing {  publications {    maven(MavenPublication) {      groupId = group      artifactId = 'tools-starter'      version = version      from components.java    }  }  repositories {
   maven { url "http://xxxx.com/repository/maven-snapshots/"      credentials {        username 'xxx'        password 'xxxx'      }    }
 }}

這樣就可以通過Idea右邊gradle工具欄的插件菜單來發布了

gradle怎么打包發布到maven的nexus倉庫

這樣生成的pom.xml中是包含這兩個依賴的.

到此,關于“gradle怎么打包發布到maven的nexus倉庫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡水市| 仲巴县| 文登市| 舞阳县| 探索| 淳化县| 犍为县| 资源县| 盘锦市| 仁寿县| 瑞安市| 钦州市| 安宁市| 古交市| 清苑县| 集安市| 平阳县| 镇巴县| 托里县| 扎鲁特旗| 忻城县| 武清区| 林西县| 全南县| 韶山市| 沅陵县| 开化县| 金溪县| 油尖旺区| 环江| 海晏县| 两当县| 田阳县| 乌拉特后旗| 建德市| 澎湖县| 桓台县| 临夏县| 饶河县| 越西县| 河北省|