1. 程式人生 > >實戰maven私有倉庫三部曲之一:搭建和使用

實戰maven私有倉庫三部曲之一:搭建和使用

在區域網內搭建maven私有倉庫,可避免每次都從中央倉庫下載公共jar包,另外將A模組作為二方庫釋出到私有倉庫後,B模組可以很方便的引用,今天我們就來實戰maven私有倉庫的搭建和使用;

環境資訊

  1. 安裝私有倉庫的機器是ubuntu16,IP是192.168.119.155;
  2. maven私有倉庫的軟體是nexus-2.14.5,請在官網下載;
  3. 在window10環境上做驗證的使用,用到的maven版本是3.3.3,jdk版本1.8.0_111;

安裝和啟動nexus

  1. 開啟/etc/profile,新增一行export RUN_AS_USER=root
  2. 執行命令source /etc/profile
    ,使剛才的配置生效;
  3. 從官網下載的是nexus-2.14.5-02-bundle.tar.gz,執行tar -zxvf nexus-2.14.5-02-bundle.tar.gz解壓後,裡面有兩個目錄:nexus-2.14.5-02和sonatype-work;
  4. 進入nexus-2.14.5-02/bin,執行./nexus start啟動nexus;
  5. 進入nexus-2.14.5-02/logs,執行tail -f wrapper.log觀察日誌滾動資訊,看到如下資訊時nexus啟動成功:
jvm 1    | 2018-01-13 21:38:44,671-0800 INFO  [jetty-main-1]  org.sonatype
.nexus.webresources.internal.WebResourceServlet - Max-age: 30 days (2592000 seconds) jvm 1 | 2018-01-13 21:38:44,698-0800 INFO [jetty-main-1] org.sonatype.nexus.bootstrap.jetty.InstrumentedSelectChannelConnector - Metrics enabled jvm 1 | 2018-01-13 21:38:44,713-0800 INFO [jetty-main-1] org.eclipse.jetty
.server.AbstractConnector - Started InstrumentedSelectChannelConnector@0.0.0.0:8081 jvm 1 | 2018-01-13 21:38:44,713-0800 INFO [jetty-main-1] org.sonatype.nexus.bootstrap.jetty.JettyServer - Running jvm 1 | 2018-01-13 21:38:44,713-0800 INFO [WrapperListener_start_runner] org.sonatype.nexus.bootstrap.jetty.JettyServer - Started jvm 1 | 2018-01-13 21:39:26,926-0800 INFO [qtp984089572-47] org.apache.shiro.nexus5727.FixedDefaultWebSessionManager - Global session timeout: 1800000 ms jvm 1 | 2018-01-13 21:39:26,931-0800 INFO [qtp984089572-47] org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Enabling session validation scheduler... jvm 1 | 2018-01-13 21:39:26,944-0800 INFO [qtp984089572-47] org.apache.shiro.cache.ehcache.EhCacheManager - Using existing EHCache named [shiro-activeSessionCache] jvm 1 | 2018-01-13 21:39:26,945-0800 INFO [qtp984089572-45] org.apache.shiro.nexus5727.FixedDefaultWebSessionManager - Global session timeout: 1800000 ms

登入

  1. 進入nexus首頁後,點選右上角的”Log In”按鈕,輸入使用者名稱”admin”,預設密碼”admin123”;
  2. 點選左側的”Repositories”按鈕,看到已有的倉庫,如下圖:
    這裡寫圖片描述

目前nexus已經開始正常工作了,接下來我們開始使用私有倉庫;

使用私有倉庫,配置

  1. 我的windows10開發環境要使用私有倉庫,需要配置maven的資訊,開啟maven安裝目錄下的conf/settings.xml檔案;
  2. 在mirrors節點下新增一個mirror節點,內容如下:
<mirror>
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://192.168.119.155:8081/nexus/content/groups/public/</url>
</mirror>

192.168.119.155是nexus機器的IP;
3. 在profiles節點下新增一個profile節點,內容如下:

<profile>
    <id>nexus</id>
    <repositories>
        <repository>
            <id>central</id>
            <url>http://central</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>http://central</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>

以上新增了中央倉庫的相關資訊;
4. 新增一個activeProfiles節點,該節點和profiles節點一個層次,內容如下:

<activeProfiles>
    <activeProfile>nexus</activeProfile>
</activeProfiles>

新建一個springboot工程

  • 新建一個基於maven構建的springboot的web工程,裡面只有一個最簡單的controller,在pom.xml所在目錄下執行以下命令:
mvn clean package -Dmaven.test.skip=true
  • 可以看到如下資訊,當前的maven已經在通過私有倉庫下載:
[INFO] Building jar: D:\temp\201801\06\helloworld\target\helloworld-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.9.RELEASE:repackage (default) @ helloworld ---
Downloading: http://192.168.119.155:8081/nexus/content/groups/public/org/springframework/boot/spring-boot-loader-tools/1.5.9.RELEASE/spring-boot-loader-tools-1.5.9.RELEASE.pom
Downloaded: http://192.168.119.155:8081/nexus/content/groups/public/org/springframework/boot/spring-boot-loader-tools/1.5.9.RELEASE/spring-boot-loader-tools-1.5.9.RELEASE.pom (0 B at 0.0 KB/sec)
Downloading: http://192.168.119.155:8081/nexus/content/groups/public/org/springframework/boot/spring-boot-loader-tools/1.5.9.RELEASE/spring-boot-loader-tools-1.5.9.RELEASE.jar
Downloaded: http://192.168.119.155:8081/nexus/content/groups/public/org/springframework/boot/spring-boot-loader-tools/1.5.9.RELEASE/spring-boot-loader-tools-1.5.9.RELEASE.jar (0 B at 0.0 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:21 min
[INFO] Finished at: 2018-01-14T17:57:45+08:00
[INFO] Final Memory: 29M/164M
[INFO] ------------------------------------------------------------------------

已快取資訊

此時再從瀏覽器檢視“Central”倉庫的資訊,發現裡面已經快取了前面的springboot工程所依賴的jar包,今後其他機器再需要這些jar包時,就可以直接從私有倉庫上下載了,而私有倉庫沒有的jar包,也會由私有倉庫下載並儲存,然後提供給使用私有倉庫的機器;

至此,nexus的安裝和快取jar包功能的使用實戰已經完成,接下來的章節,我們會將本機的工程打包併發布到私有倉庫;

相關推薦

實戰maven私有倉庫三部曲之一搭建使用

在區域網內搭建maven私有倉庫,可避免每次都從中央倉庫下載公共jar包,另外將A模組作為二方庫釋出到私有倉庫後,B模組可以很方便的引用,今天我們就來實戰maven私有倉庫的搭建和使用; 環境資訊 安裝私有倉庫的機器是ubuntu16,IP是192.1

實戰maven私有倉庫三部曲之二上傳到私有倉庫

在上一章《實戰maven私有倉庫三部曲之一:搭建和使用》我們搭建了maven私有倉庫,並體驗了私有倉庫快取jar包的能力,避免了局域網內開發人員去遠端中央倉庫下載的痛苦等待,本章我們再來體驗私有倉庫的另一個功能:儲存二方庫; 使用場景 mvndemos

CentOS 初體驗十六阿里雲安裝Nexus搭建Maven私有倉庫

簡介 mavenCentral 是最早的 maven 中央倉庫。 私有伺服器,是公司內部 Maven 專案經常需要的,Nexus 是常用的私用 Maven 伺服器, Nexus 被超過10萬個開發團隊所使用。 本次搭建私有倉庫用的是阿里雲伺服器,系

通過Nexus搭建maven私有倉庫,並通過gradle上傳jar

pre install oss 通過 epo 選擇 配置 容器 ffffff 安裝nexus 安裝docker``·bashyum install docker-ce 拉取鏡 docker pull registry.docker-cn.com/sonatype/nex

maven構建docker映象三部曲之一準備環境

更簡單的部署 之前的實戰中,如果要在docker環境中執行java的web工程,通常先執行一個支援線上部署的tomcat容器,然後通過mavenn的tomcat7-maven-plugin外掛把工程線上部署到tomcat中,有沒有更簡便的方法呢?有,利

mybatis實戰教程(mybatis in action)之一開發環境搭建

mybatis 的開發環境搭建,選擇: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。這些軟體工具均可以到各自的官方網站上下載。首先建立一個名字為 MyBaits 的 dynamic web project  1.

Maven】Nexus3搭建Maven私有倉庫及使用

Maven庫 remote repository:相當於公共的倉庫,大家都能訪問到,一般可以用URL的形式訪問 local repository:存放在本地磁碟的一個資料夾,例如,windows上預設是C:\Users\{使用者名稱}\.m2\repository目錄 R

Maven 私有倉庫搭建

筆者曾經不思量力的思考過『是什麼推動了網際網路技術的快速發展?』這種偉大的命題。結論是,除了摩爾定律之外,技術經驗的快速積累和廣泛分享,也是重要的原因。 有人戲稱,『寫 Java,首先要學會選包』,在這裡不好評論對錯。不過這句話裡面,至少包含兩層意思:首先 Ja

Docker學習之搭建maven私有倉庫

2018-05-21 07:00:00,772+0000 INFO  [quartz-5-thread-1] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Storage facet cleanup' [repos

Nexus 搭建maven 私有倉庫

nexus 如果沒有私服,我們所需的所有構件都需要通過maven的中央倉庫和第三方的Maven倉庫下載到本地,而一個團隊中的所有人都重複的從maven倉庫下載構件無疑加大了倉庫的負載和浪費了外網頻寬,如果網速慢的話,還會影響專案的程序。很多情況下專案的開發都是在內網進行的

Nexus 3.x 搭建本地 Maven 私有倉庫

本文首發於我的部落格,歡迎訪問 官方介紹: The free artifact repository with universal support for popular formats. 10 million developers

Docker下實戰zabbix三部曲之一極速體驗

對於想學習和實踐zabbix的讀者來說,在真實環境搭建一套zabbix系統是件費時費力的事情,本文內容就是用docker來縮減搭建時間,目標是讓讀者們儘快投入zabbix系統的體驗和實踐; 環境資訊 以下是本次操作的環境: 作業系統:MacBook Pro Docker:19.03.2 全系列文章連結: 三

CoProcessFunction實戰三部曲之一基本功能

### 歡迎訪問我的GitHub [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) 內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等; ###

Spring Boot 多模塊與 Maven 私有倉庫

.project date content reporting pts fin plugin cond ssl 前言 系統復雜了,抽離單一職責的模塊幾乎是必須的;若需維護多個項目,抽離公用包上傳私有倉庫管理也幾乎是必須的。其優點無需贅述,以下將記錄操作過程。 1. 多模塊

【新功能】企業級Maven私有倉庫服務結束公測,全面開放使用

6.2 add ecn 方式 courier 設置 ask 創建 maven 摘要: 目前雲效上線了企業級Maven私有倉庫服務。用戶可以一鍵開通Maven私有倉庫服務,零配置實現私有二方庫的上傳和下載。經過半個月的公測,雲效中的企業級Maven私有倉庫服務正式上線,全面開

如何打造一個高可用多租戶的企業級Maven私有倉庫服務

href 雲效 repl group abi 方式 簽名 ava watermark 摘要: 為什麽要打造多租戶的企業級Maven私有倉庫服務? 在Java的世界中,我們通常使用Maven的依賴體系來管理構件(artifact,又稱為二方庫或三方庫)的依賴。Maven倉庫用

自定義spring boot starter三部曲之一準備工作

從本章開始,一起實戰一個自定義的spring boot starter,整個系列共三篇文章,內容如下: 準備:瞭解基本概念、規劃實戰內容; 實戰:開發自定義starter,並在demo工程中使用它; 深入:從spring和spring boot原始碼層面分析sta

spring4.1.8初始化原始碼學習三部曲之一AbstractApplicationContext構造方法

這個demo的原始碼可以在github下載,地址和連結資訊如下表所示: 名稱 連結 備註 專案主頁 https://github.com/zq2599/blog_demos 該專案在GitHub上的主頁 git倉庫地址(https)

spring+mybatis啟動NoClassDefFoundError異常分析三部曲之一穩定重現問題

上一週,web專案在釋出的時候應用啟動失敗了,錯誤資訊如下: org.springframework.web.context.ContextLoader] - Context initialization failed java.lang.NoClassDef

Docker下ELK三部曲之一極速體驗

《Docker下ELK三部曲》一共三篇文章,為您揭示如何快速搭建ELK環境,以及如何將web應用的日誌上報到ELK用,三部曲內容簡述如下: 1. 極速體驗ELK服務,即本章的內容; 2. 細說技術詳情,例如集成了filebeat服務的映象如何製作,web應用