利用maven deploy上傳本地jar至私服的方法
1.場(chǎng)景
首先目前依賴包的管理大多數(shù)是maven,其次當(dāng)使用到第三方的包的時(shí)候,官方的倉(cāng)庫(kù)或者aliyun的maven都是沒(méi)有這個(gè)包的。那么,為了方便我們使用 我們需要將本地的這個(gè)jar上傳到 公司內(nèi)部的私服去,以便大家使用
2. 上操作
我們直接使用maven-deploy插件進(jìn)行上傳
mvn deploy:deploy-file -DgroupId=xxx.openplatform.shared -DartifactId=sdk.client -Dversion=2.9.0-SNAPSHOT -Dpackaging=jar -DgeneratePom=true -Dfile=./src/main/resources/lib/xx-sdk-java-1.2.0.jar -Durl='http://xxxx:8083/nexus/content/repositories/snapshots/' -DrepositoryId=xxx-snapshots
各參數(shù)代表含義為:
groupId: 待上傳的jar groupId
artifactId:待上傳jar artifactId
version:jar的版本
generatePom: true 表示生成pom
file:表示文件路徑 (可以為相對(duì)路徑或者絕對(duì)路徑)確保文件存在
url :私服的地址
repositoryId : 私服地址的id
3. 可能會(huì)遇到的問(wèn)題以及解決辦法
- 問(wèn)題1: 上傳失敗 Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1]
原因(1)可能私服已經(jīng)存在jar 但是私服倉(cāng)庫(kù)未配置允許重新部署
解決:修改私服倉(cāng)庫(kù)配置為允許重新部署 如下圖
一般情況 snapshots 版本是允許重新部署的 release版本是不允許的 當(dāng)然也有例外 release 一般不建議允許重新部署 (線上的穩(wěn)定版本 如果確認(rèn)沒(méi)問(wèn)題的話 建議升級(jí)版本號(hào) 在重新執(zhí)行命令)

原因 (2)有可能版本不符,快照版不能選擇Release

解決:選擇對(duì)應(yīng)的 倉(cāng)庫(kù)上傳
- 問(wèn)題二: Return code is: 401, ReasonPhrase:Unauthorized
未進(jìn)行配置訪問(wèn)私服的賬號(hào)密碼
解決:添加私服的賬號(hào)密碼 位置: maven安裝位置/conf/settings.xml
找到servers 標(biāo)簽 并里面 在進(jìn)行添加內(nèi)容 如下
<server>
<id>xxx-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>id要和上傳時(shí)候指定的repositoryId 相同 不然仍會(huì)報(bào)錯(cuò)
- 問(wèn)題三:私服上的包拉不下來(lái)
解決:idea切換到項(xiàng)目終端 執(zhí)行如下命令 強(qiáng)制拉取 并且clean install 跳過(guò)測(cè)試類
mvn -U clean install -DskipTest=true
擴(kuò)展:maven 本地jar包使用deploy命令上傳到私服
deploy命名如下,相關(guān)參數(shù)可根據(jù)自身本地實(shí)際情況調(diào)整:
?mvn deploy:deploy-file? -Dmaven.test.skip=true -Dfile=/Users/xxx/ImpalaJDBC41-2.6.4.jar -DgroupId=com.cloudera? -DartifactId=ImpalaJDBC41 -Dversion=2.6.4 -Dpackaging=jar? -DrepositoryId=nexus-release -Durl=https://www.xxx.cn/artifactory/maven-public/
使用這種方法時(shí)要注意的是如果你要安裝的jar是位于本地repository的目錄下,即-Dfile={本地repository目錄}下,這個(gè)命令就會(huì)出錯(cuò)(Cannot deploy artifact from the local repository…)
解決方法:
1、將你要安裝的jar復(fù)制到其他目錄再安裝,只要不在本地倉(cāng)庫(kù)目錄都可以
2、如果1還不行的話,可能私服已禁止本地deploy,需要協(xié)調(diào)私服管理員,然后再注冊(cè)審核通過(guò)后,會(huì)創(chuàng)建jenkins job來(lái)deploy
到此這篇關(guān)于maven deploy上傳本地jar至私服的文章就介紹到這了,更多相關(guān)maven 上傳本地jar至私服內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 關(guān)于使用mvn deploy命令將本地jar包上傳到maven私服的問(wèn)題(收藏)
- 多模塊maven的deploy集成gitlab?ci自動(dòng)發(fā)版配置
- maven 在執(zhí)行package,install,deploy時(shí)使用clean與不使用clean的不同之處
- maven deploy時(shí)報(bào)錯(cuò)的解決方法
- Maven 打包項(xiàng)目到私服 (deploy)的配置方法
- Maven deploy配置方法詳解
- 理解maven命令package、install、deploy的聯(lián)系與區(qū)別
- Maven deploy plugin使用方式
相關(guān)文章
SpringBoot實(shí)現(xiàn)PDF轉(zhuǎn)圖片的代碼示例
在本文中,我們使用SpringBoot演示了如何將PDF文件轉(zhuǎn)換為一張或多張圖片,這些示例演示了如何使用Java編程語(yǔ)言與其他開(kāi)源技術(shù)集成,以實(shí)現(xiàn)各種文件格式之間的轉(zhuǎn)換,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-08-08
SpringBoot中處理的轉(zhuǎn)發(fā)與重定向方式
這篇文章主要介紹了SpringBoot中處理的轉(zhuǎn)發(fā)與重定向方式,分別就轉(zhuǎn)發(fā)和重定向做了概念解說(shuō),結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
SpringBoot如何實(shí)現(xiàn)緩存預(yù)熱
緩存預(yù)熱是指在 Spring Boot 項(xiàng)目啟動(dòng)時(shí),預(yù)先將數(shù)據(jù)加載到緩存系統(tǒng)(如 Redis)中的一種機(jī)制,本文主要介紹了SpringBoot如何實(shí)現(xiàn)緩存預(yù)熱,感興趣的可以了解下2024-12-12
Spring中的@ControllerAdvice三種用法詳解
這篇文章主要介紹了Spring中的@ControllerAdvice三種用法詳解,加了@ControllerAdvice的類為那些聲明了(@ExceptionHandler、@InitBinder或@ModelAttribute注解修飾的)方法的類而提供的<BR>專業(yè)化的@Component,以供多個(gè)Controller類所共享,需要的朋友可以參考下2024-01-01
Spring Boot利用@Async異步調(diào)用:使用Future及定義超時(shí)詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot利用@Async異步調(diào)用:使用Future及定義超時(shí)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2018-05-05

