搭建自己的私服倉庫Nexus
搭建自己的私服倉庫Nexus
為什麼需要Nexus?
團隊所需要的依賴構件都重複的從maven和npm倉庫下載,加大的倉庫的負載和外網頻寬,網速較慢會影響專案程式。團隊開發的公共構件怎麼讓其他專案使用
Nexus:Maven&Npm私服
文章目錄
一、運維篇
1、編輯docker-compose.yml
version: '3'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus3
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/nexus-data:/nexus-data
2、啟動
docker-compose up -d
啟動成功,訪問8081
注意:登入admin,初始密碼在檔案/sonatype-work/nexus/admin.password中,登入後修改密碼
3、如何高可用
通過keepalive+inotify+rsync做到主從ip漂移以及資料同步
4、資料遷移
(1)倉庫遷移
Nexus的構件倉庫都儲存在sonatype-work目錄中,該目錄的位置由nexus/conf/nexus.properties配置檔案指定。
倉庫遷移需要兩個過程:備份和還原
(2)備份倉庫
將sonatype-work資料夾整體備份即可,也可以選擇只備份最重要的兩個資料夾索引indexer、和倉庫storage、
(3)還原倉庫
將備份好的sonatype-work檔案拷貝到新的伺服器中。然後修改nexus/conf/nexus.properties配置檔案,重新指定倉庫的目錄。
二、使用篇
1、倉庫說明
(1)預設倉庫說明:
- maven-central:maven 中央庫,預設從 https://repo1.maven.org/maven2/ 拉取 jar
- maven-releases:私庫發行版 jar,初次安裝請將 Deployment policy 設定為 Allow redeploy
- maven-snapshots:私庫快照除錯版本、jar
- maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地 maven 基礎配置 settings.xml 或專案 pom.xml 中使用
(2)倉庫型別說明:
- group:這是一個倉庫聚合的概念,使用者倉庫地址選擇 Group 的地址,即可訪問 Group 中配置的,用於方便開發人員自己設定的倉庫。maven-public 就是一個 Group 型別的倉庫,內部設定了多個倉庫,訪問順序取決於配置順序,3.x 預設為 Releases、Snapshots、Central,當然你也可以自己設定。
- hosted:私有倉庫,內部專案的釋出倉庫,專門用來儲存我們自己生成的 jar 檔案
- snapshots:本地專案的快照倉庫
- releases: 本地專案釋出的正式版本
- proxy:代理型別,從遠端中央倉庫中尋找資料的倉庫可以點選對應的倉庫的 Configuration 頁簽下 Remote Storage 屬性的值即被代理的遠端倉庫的路徑、,如可配置阿里雲 maven 倉庫
- central:中央倉庫
2、建立倉庫
選擇倉庫型別NPM、MAVEN、
建立代理倉庫
Name:就是為代理起個名字
Remote Storage: 代理的地址,Maven的地址為: https://repo1.maven.org/maven2/
Blob Store: 選擇代理下載包的存放路徑
建立私有倉庫
deployments pollcy: 是否允許重複釋出
建立倉庫組
注意:私有倉庫在前,代理倉庫在後
注意倉庫的順序。maven查詢依賴時會依次遍歷倉庫組中的倉庫。
3、許可權管理
三、接入篇
1、後端【MAVEN】
(1)maven setting.xml
<servers>
<server>
<id>nexus</id>
<username>maven</username>
<password>thinkmacro@maven</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus</id>
<name>nexus repository</name>
<url>https://repo.thinkmacro.cn/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
注意:server的ID和mirror的ID 需要保持一致
(2)pom.xml
<distributionManagement>
<repository>
<id>nexus</id>
<name>Nexus Release Repository</name>
<url>https://repo.thinkmacro.cn/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>Nexus Snapshot Repository</name>
<url>https://repo.thinkmacro.cn/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
(3)釋出上傳到nexus
或執行命令
mvn clean deploy
上傳成功
2、前端【NPM】
(1)設定npm倉庫
npm config get registry #http://registry.cnpmjs.org/
npm config set registry http://192.168.0.136:8081/repository/npm-group/
(2)配置package.json
"publishConfig" : {
"registry" : "http://192.168.0.136:8081/repository/npm-hosted/"
}
(3)登入私服
npm login –registry=http://192.168.0.136:8081/repository/npm-hosted/
(4)釋出上傳到nexus
npm publish –registry=http://192.168.0.136:8081/repository/npm-hosted/
注意!publish失敗401有可能是nexus缺少npm token登入配置
上傳成功
相關文章
- Maven私服倉庫配置-Nexus詳解!Maven
- 使用nexus搭建yum倉庫
- Linux下用nexus搭建maven私服LinuxMaven
- 使用nexus搭建npm本地私人倉庫NPM
- AndroidStudio+Nexus3.x搭建Maven私服AndroidS3Maven
- Jenkins之Nexus搭建Maven私有倉庫教程JenkinsMaven
- nexus私服SNAPSHOT倉庫maven-metadata.xml缺失導致的Could not find artifact:***.jarMavenXMLJAR
- 超詳細 | 使用Nexus搭建私服 (帶程式碼演示)
- 10分鐘搭建自己的Git倉庫Git
- aardio教程) 搭建自己的擴充套件庫倉庫套件
- Linux 環境下安裝 Nexus 私服儲存庫Linux
- kubernetes實戰篇之nexus oss伺服器部署及基於nexus的docker映象倉庫搭建伺服器Docker
- Maven私有倉庫-Nexus3MavenS3
- Nexus的搭建
- Maven私服:Docker安裝nexus3MavenDockerS3
- docker搭建maven私服(nexus3),整合springboot上傳下載依賴DockerMavenS3Spring Boot
- 黑猴子的家:Maven 私服 Nexus3 下載MavenS3
- 記一次maven nexus私服釋出Maven
- nexus3部署npm hosted私服S3NPM
- 如何在CentOS7上搭建自己的GitLab倉庫詳解?CentOSGitlab
- Kunbernetes-基於Nexus構建私有映象倉庫
- NPM 私有倉庫的搭建NPM
- 研發提效必備技能:手把手教你基於Docker搭建Maven私服倉庫DockerMaven
- yum倉庫搭建
- Maven 教程之釋出 jar 到私服或中央倉庫MavenJAR
- 群暉DS218+做maven私服(nexus3)MavenS3
- Maven高階-本地倉庫訪問私服配置及私服資源上傳與下載Maven
- 用Docker搭建cnpm私有倉庫以及私有倉庫的使用DockerNPM
- Docker倉庫之Registry私有映象倉庫的搭建與使用Docker
- docker 私有倉庫搭建Docker
- 搭建python私有倉庫Python
- gitlab私有倉庫搭建Gitlab
- 搭建Harbor 映象倉庫
- docker搭建私有倉庫Docker
- 使用gradle外掛釋出專案到nexus中央倉庫Gradle
- docker學習及專案應用實戰(五搭建自己的私有倉庫)Docker
- npm私服 verdaccio 搭建NPM
- 使用mvn命令將pom和jar上傳至nexus私服JAR