Jenkins之Nexus搭建Maven私有倉庫教程
在開發過程中,有時候會使用到公司內部的一些開發包,顯然把這些包放在外部是不合適的。另外,由於專案一直在開發中,這些內部的依賴可能也在不斷的更新。可以透過搭建公司內部的Maven伺服器,將第三方和內部的依賴統一管理,同時也可以節省網路頻寬,當然前提是專案所需要的構件在私服中已經存在。如何在公司內部部署一個自己的Maven私有倉庫呢?
私服介紹
私服是架設在區域網的一種特殊的遠端倉庫,目的是代理遠端倉庫及部署第三方構件。有了私服之後,當 Maven 需要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;否則,私服請求外部的遠端倉庫,將構件下載到私服,再提供給本地倉庫下載。
搭建私服前後Maven工作流程:
可以使用專門的Maven倉庫管理軟體來搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。這裡我們使用 Sonatype Nexus。
安裝Nexus
安裝JDK
openjdk比較精簡,會出現各種奇葩問題,故使用Oracle JDK版本
下載地址 下載jdk-8u151-linux-x64.rpm
# rpm -ivh jdk-8u151-linux-x64.rpm # vim /etc/profile # JAVA bin PATH setup export JAVA_HOME=/usr/java/jdk1.8.0_151/export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin # source /etc/profile # java -version openjdk version "1.8.0_151"OpenJDK Runtime Environment (build 1.8.0_151-b12)OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
安裝Maven
下載地址下載apache-maven-3.5.2-bin.tar.gz
# wget # tar -zxf apache-maven-3.5.2-bin.tar.gz # mv apache-maven-3.5.2# mv apache-maven-3.5.2 /usr/local/# ln -s apache-maven-3.5.2/ maven # vim /etc/profile export M2_HOME=/usr/local/maven export PATH=$PATH:$M2_HOME/bin # source /etc/profile # mvn -version Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00)Maven home: /usr/local/maven Java version: 1.8.0_151, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre Default locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"
安裝Nexus
下載地址 下載版本nexus-2.12.0-01-bundle.tar.gz
# wget # tar -zxf nexus-2.12.0-01-bundle.tar.gz # cp -r nexus-2.12.0-01 /usr/local/# cd /usr/local/# ln -s nexus-2.12.0-01/ nexus # cd /usr/local/nexus/bin/# ./nexus start****************************************WARNING - NOT RECOMMENDED TO RUN AS ROOT****************************************If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.# vim /usr/local/nexus/bin/nexus RUN_AS_USER=root # ./nexus start # 重啟啟動 # tail -f /usr/local/nexus/logs/wrapper.log.........jvm 1 | 2017-12-26 01:44:44,958-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.rest.NexusApplication_UriMatching - Strict URI matching: truejvm 1 | 2017-12-26 01:44:45,163-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /usr/local/sonatype-work/nexus/conf/lvo-plugin.xml jvm 1 | 2017-12-26 01:44:45,171-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /usr/local/sonatype-work/nexus/conf/ldap.xml jvm 1 | 2017-12-26 01:44:45,808-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.webresources.internal.WebResourceServiceImpl - Discovered 1971 resources jvm 1 | 2017-12-26 01:44:45,809-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.webresources.internal.WebResourceServlet - Max-age: 30 days (2592000 seconds)jvm 1 | 2017-12-26 01:44:45,858-0500 INFO [ar-4-thread-1] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Initializing remote transport for proxy repository "Apache Snapshots" [id=apache-snapshots]...jvm 1 | 2017-12-26 01:44:46,461-0500 INFO [ar-4-thread-3] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Initializing remote transport for proxy repository "Central" [id=central]...jvm 1 | 2017-12-26 01:44:46,522-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.InstrumentedSelectChannelConnector - Metrics enabled jvm 1 | 2017-12-26 01:44:46,545-0500 INFO [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started InstrumentedSelectChannelConnector@0.0.0.0:8081jvm 1 | 2017-12-26 01:44:46,545-0500 INFO [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Running jvm 1 | 2017-12-26 01:44:46,545-0500 INFO [WrapperListener_start_runner] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Started jvm 1 | 2017-12-26 01:44:47,543-0500 INFO [ar-4-thread-3] *SYSTEM org.sonatype.nexus.proxy.maven.routing.internal.RemoteContentDiscovererImpl - Remote strategy prefix-file on M2Repository(id=central) detected invalid input, results discarded: Prefix file size exceeds maximum allowed size (100000), refusing to load it.# netstat -tunlp|grep 8081tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 21544/java
將nexus設定為Linux系統的服務,並開機自動啟動
1、複製$NEXUS_HOME/bin/jsw/linux-x86-64/nexus 到/etc/init.d/nexus
2、授於nexus指令碼有可執行的許可權:
chmod 755 /etc/init.d/nexus
3、修改nexus檔案,配置以下引數:
修改NEXUS_HOME 絕對路徑,如:NEXUS_HOME=”/usr/local/nexus”
設定RUN_AS_USER=nexus,或都其它的使用者,前提是建立了此使用者。
NEXUS_HOME=/usr/local/nexus PLATFORM=linux-x86-64PLATFORM_DIR="${NEXUS_HOME}/bin/jsw/${PLATFORM}"WRAPPER_CMD="${PLATFORM_DIR}/wrapper"WRAPPER_CONF="${PLATFORM_DIR}/../conf/wrapper.conf"PIDDIR="${NEXUS_HOME}"
4、Red Hat, Fedora, CentOS增加nexus服務
cd /etc/init.d chkconfig --add nexus chkconfig --levels 345 nexus on service nexus start tail -f /usr/local/nexus/logs/wrapper.log
配置完成後,您可以訪問web介面 http://{IP}:8081/nexus/ ,進入系統進行設定
預設管理賬號:admin 密碼:admin123
Nexus管理
倉庫型別
登入Nexus在左邊選單欄裡選擇Repositories,列出已有的所有倉庫,可以看到type有幾種型別劃分
-
group 倉庫組:Nexus 透過倉庫組的概念統一管理多個倉庫,這樣我們在專案中直接請求倉庫組即可請求到倉庫組管理的多個倉庫
-
hosted 宿主倉庫:主要用於部署無法從公共倉庫獲取的構件(如oracle的JDBC驅動)以及自己或第三方的專案構件
-
proxy 代理倉庫:代理公共的遠端倉庫
-
virtual 虛擬倉庫:用於適配 Maven1
倉庫常見操作
-
修改預設儲存路徑
-
同步索引
-
修改遠端同步地址為aliyun映象地址
參考資料
= = = = = = = = = =====
原文地址: http://tencent.yundashi168.com/756.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69988117/viewspace-2736054/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Maven私有倉庫-Nexus3MavenS3
- Android業務元件化之Gradle和Sonatype Nexus搭建私有maven倉庫Android元件化GradleMaven
- 使用Nexus搭建Maven本地倉庫Maven
- Maven倉庫管理之NexusMaven
- 使用Github搭建Maven私有遠端倉庫GithubMaven
- Nexus私有maven庫部署和使用Maven
- maven倉庫管理器NexusMaven
- docker 私有倉庫搭建Docker
- docker搭建私有倉庫Docker
- 建立你自己的本地倉庫(Maven倉庫管理-Nexus)Maven
- Maven私服倉庫配置-Nexus詳解!Maven
- Docker倉庫之Registry私有映象倉庫的搭建與使用Docker
- 使用nexus搭建yum倉庫
- 用Docker搭建cnpm私有倉庫以及私有倉庫的使用DockerNPM
- 如何使用GitHub建立Maven私有倉庫GithubMaven
- NPM 私有倉庫的搭建NPM
- Docker搭建Harbor私有倉庫Docker
- Docker搭建私有映象倉庫Docker
- gitlab私有倉庫搭建Gitlab
- 搭建python私有倉庫Python
- 搭建自己的私服倉庫Nexus
- maven 如何用私有倉庫中的包Maven
- 使用verdaccio搭建私有npm倉庫NPM
- 搭建私有的Composer倉庫
- 使用verdaccio 搭建npm私有倉庫NPM
- [gitlab]搭建私有github倉庫GitlabGithub
- 使用nexus搭建npm本地私人倉庫NPM
- Jenkins打Docker映象推送到私有倉庫JenkinsDocker
- docker搭建Nexus搭建Maven私服DockerMaven
- Kunbernetes-基於Nexus構建私有映象倉庫
- Docker基礎-搭建本地私有倉庫Docker
- 使用 SVN 搭建 Composer 私有倉庫
- Docker入門-搭建docker私有倉庫Docker
- Docker搭建私有倉庫Registry&HarborDocker
- docker使用容器搭建本地私有倉庫Docker
- Docker-------私有倉庫 Harbor 的搭建Docker
- 使用 docker + verdaccio 搭建npm私有倉庫DockerNPM
- Linux搭建私有軟體倉庫Linux