日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

到Nexus私服的发包实践

發布時間:2023/12/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 到Nexus私服的发包实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、前言

二、后端

三、前端

四、總結


一、前言

? ? ? ? Nexus是一個強大的倉庫管理器,極大地簡化了內部倉庫的維護和外部倉庫的訪問。 支持搭建私服,通常被作為docker、npm、yum、go、apt等的私有倉庫。 其優點為:加速構建、提高穩定性、使用文件系統和Lucene來組織數據(不需額外搭建數據庫)。 本文將從前端和后端的角度,分別介紹發包的方式。

二、后端Maven項目

? ? ? ? 本章節首先介紹了maven項目發包之前,需要做的一些nexus賬戶和源的配置。然后,介紹本地開發的maven項目,需要用到的發包命令。接著,又介紹了針對本地的jar包,網上第三方不維護和的jar包,發包到nexus的方式。

? ? ? ? 2.1 配置setting.xml

? ? ? ? 本人所負責到的后端項目,均是maven項目,maven項目在發包之前,都需要在setting.xml文件中對目標nexus進行配置,以下是我使用的配置,可進行參考:

<servers><!-- 發包使用到的nexus賬戶,務必確保該賬戶有以下mirror中url的權限 --><server><id>maven-public</id><username>admin</username><password>Admin123</password></server> <servers><mirrors><!-- nexus 發包目標位置 --><mirror><id>nexus</id><mirrorOf>*</mirrorOf><name>RDXA Repository</name><url>http://192.168.70.20:8081/repository/maven-public/</url></mirror><mirrors>

圖 使用maven發包前針對nexus的配置參考

?????????2.2?針對存在源碼的maven項目

? ? ? ? 主要使用場景有3種,第一種,有的包年代久遠,官網、Maven中央倉庫或者鏡像庫,早已經不更新該依賴包了,但是能從github或者碼云上找到開放出的源碼。第二種,我們在使用第三方開源庫的過程中,發現了已知的bug。第三種,本地開發的maven項目。例如:公司內部的公共庫。

????????特別是前2種情況,通常我們可以把該開源項目的源碼下載到本地,進行編譯或者bug修復,并發布到私服上,就能供各產品線開發人員,或者項目CI/CD使用。

mvn clean deploy -Dpmd.skip=true -Dcheckstyle.skip=true

圖 針對本地開發的maven項目發包命令

?????????2.3?針對特定jar包

????????主要介紹針對jar包的發包方式。首先,比如古老項目中,有用到的網上第三方庫,該第三方庫早已不再維護,但是能找到該項目jar包的備份。然后,可以是被中央倉庫或者鏡像倉庫永久下架的,但是能找到該項目jar包的備份。以下,以taobao-sdk-java-auto為例。

mvn deploy:deploy-file -DgroupId=com.dingtalk.api -DartifactId=top-api-sdk -Dversion=2.0.0-RELEASE -Dpackaging=jar -Dfile="D:\jar\taobao-sdk-java-auto_1479188381469-20210630.jar" -DgeneratePom=true -DrepositoryId=maven -Durl=http://192.168.70.29:8081/repository/maven-public/ -DrepositoryId=maven-public

圖 針對jar包發包命令

三、前端Npm項目?

? ? ? ? 本章節主要介紹npm項目發包實踐。主要使用場景與章節2.2中類似,此處將不再贅述。

????????以下腳本或者命令,只適用于本人使用到的npm發包場景。

????????首先,拉公共庫代碼。然后,升級版本號。按照項目迭代規約,公共庫版本號需要升級。其次,更改npm源為公共源npm-group,確保裝包可用。接下來,執行install和build命令進行裝包和打包,生成發布所需文件。進一步,模擬nexus登陸,該用戶需擁有nexus上發布空間的publish權限。最后,更改發布源,執行publish命令進行版本發布。

? ? ? ? 針對以上業務需求,本人使用到的發包腳本如下:

#!/bin/sh jenkins_job_name=$2 npm_package_name=$3#1.退出登陸,確保登陸用戶為認證用戶 rm -rf ./.npmrc npm logout npm -v npm config get registry rm -rf package-lock.json rm -rf yarn.lock#2.更改版本號 ansible-playbook -e "host_name=$1 project_name=$2 package_version=$4" /home/jenkins/ci/$1/are-publish-npm.yml#3.裝包 rm -rf ./.npmrc npm config set registry http://192.168.25.57:8081/repository/npm-group/ (yarn install) && ( echo 🚨install success ) #4.模擬登陸,查看登陸信息 echo "email=admin-fs@example.org" > ./.npmrc echo "always-auth=true" >> ./.npmrc echo "_auth=YWRtaW4tZnM6YWRtaW4tZnM=" >> ./.npmrc npm whoami #5.設置發布源,進行發布 npm config set registry http://192.168.25.57:8081/repository/npm-product-FusionSite/ npm config get registry ( npm run build:umd ) && ( echo 🚨$npm_package_name-npm-build success ) && ( npm publish ) || ( echo 🚨$npm_package_name"Error: $_" > ./suppinter_publish.log ) echo 🚨$npm_package_name publish success#6.還原發布鏡像源 npm config set registry http://192.168.25.57:8081/repository/npm-group/

圖 針對npm項目發包命令

四、總結

? ? ? ? 技術棧層出不窮,更新迭代飛快,產生了眾多派系,例如maven和npm等等派系。其相同派系的項目,編譯,測試和發布過程類似,均可以參考本文所使用到的發包命令,并配合jenkins靈活使用,來進一步健全devops體系。

? ? ? ? 最后,希望本文能啟發到你,也歡迎有其它使用場景的朋友來和我交流,共同進步是我們共同的目標。

總結

以上是生活随笔為你收集整理的到Nexus私服的发包实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。