環境搭建|第一篇:Docker+Nexus搭建Maven私服

1.前言

一直想寫一個系列,將平時工作中使用的環境、技術都寫進同一系列中,目的主要使自己知識成體系,初步規劃內容有《Docker+Nexus搭建Maven私服》、《Docker+Jenkins實現自動化部署》、《Springcloud系列》、《k8s服務編排》,後續可能還會有新的動西加入,涉及的動西比較多,時間會比較長,希望自己能堅持寫完。


2.系統環境

1.環境搭建均使用Docker安裝,故需要Docker相關知識,對於Docker不熟悉的童鞋可參見我的另一篇文章Docker學習筆記之基礎知識
2.以下ip非騰訊雲真實ip,大家根據自己實際情況填寫,此處只是方便後續使用

環境 版本
騰訊雲系統 centos7
ip 192.168.1.100
Docker 18.09.6
Nexus 3.x
Maven 3.6.1

3.安裝Nexus

  • 說明

此安裝步驟參照Docker Hub官網安裝,大家也可移步官網查看sonatype/nexus for docker安裝

  • docker安裝Nexus
# 拉取鏡像
$ docker pull sonatype/nexus3
# 創建本地掛載文件夾
$ mkdir -p /home/milk/docker/nexus-data
# 設置掛載文件夾權限
$ sudo chown -R 200:200 /home/milk/docker/nexus-data
# 啓動sonatype/nexus3鏡像
$ docker run -d -p 8081:8081 --name nexus -v /home/milk/docker/nexus-data:/nexus-data sonatype/nexus3
  • 安裝完成

私服安裝完成後,瀏覽器鍵入http://192.168.1.100:8081看到如下界面表示Nexus安裝成功

在這裏插入圖片描述

4.私服設置

  • 登錄設置密碼

1.私服安裝完成後都會有一個默認密碼,需自己進入文件夾查詢,以下提供兩種方式查詢
2.查看登錄後會自動進入修改密碼導航,自己根據需求進行修改即可

# 方法一:直接在掛載文件夾中查詢
$ cd /home/milk/docker/nexus-data
$ cat admin.password
# 方法二:直接進入docker容器中的nexus-data
$ docker exec -it 窗口id /bin/bash
$ cat /nexus-data/admin.password
  • 設置

登錄成功後,會看到如下頁面,多了一個設置按鈕,我們關注下圖箭頭處即可

在這裏插入圖片描述

  • Repositories設置

倉庫分爲如下幾種,hosted,group,proxy三種
hosted:表示存放本地上傳的jar包
proxy:表示存放第三方依賴
group:可以聚合多個倉庫

在這裏插入圖片描述
1. 選擇創建倉庫-》maven2(proxy)

在這裏插入圖片描述
在這裏插入圖片描述
2.倉庫設置

1.Name:可自定義
2.Proxy:可按需設置,必如阿里雲倉庫地址

在這裏插入圖片描述

  • Roles設置

1.創建角色

角色設置,默認有管理員和遊客

在這裏插入圖片描述
2.設置權限

1.以下設置了developer角色
2.設置了該角色只能對releases和snapshots倉庫進行操作權限

在這裏插入圖片描述

  • Users設置

選擇創建用戶,信息可以按需填寫,下邊可選擇我們剛纔配置的developer角色,配置即可

在這裏插入圖片描述

5.Maven設置

通過上述操作,私服已經搭建完成,現在我們需要設置項目中的pom.xml和settings.xml,只有完成如下設置,才能將我們配置的私服完全運用起來

5.1 settings.xml設置

  • localRepository: 表示本地倉庫地址
<localRepository>/home/zycao/work/study-repo</localRepository>
  • service:表示登錄私服倉庫用戶名和密碼
  <servers>
    <server>
      <id>study-nexus</id>
      <username>user1</username>
      <password>user123456</password>
    </server>
   </servers>
  • mirror:配置鏡像
    • id:唯一不重複即可
    • mirrorOf:配置倉庫id,對應下邊 repository中id,如果配置爲*則表示代理所有依賴下載路徑爲mirror配置的url,還有許多關於設置相關的,大家可參考官方文檔進行設置鏡像設置
    • url:配置鏡像地址,此處爲配置的私有參庫地址
<mirrors>
    <mirror>
      <id>nexus-myself</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus myself</name>
      <url>http://192.168.1.100 :8081/repository/maven-public/</url>
    </mirror>
  </mirrors>
  • profile:配置不同的倉庫
    • id:在後續選擇激活那個配置時用到,唯一不重複
    • repository:可配置多個,在此配置私有倉庫地址
  <profiles>
    <profile>
      <!--配置激活文件名,唯一不重複-->
      <id>study-nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://192.168.1.100 :8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://192.168.1.100 .245:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  • activeProfiles:決定選擇那一個配置生效,此處即爲上邊配置的profiles的id
  <activeProfiles>
    <activeProfile>study-nexus</activeProfile>
  </activeProfiles>
  • 完整settings.xml文件
<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地倉庫地址-->
<localRepository>/home/milk/work/study-repo</localRepository>

<!--使用命令創建項目時,以對話模式 Default:true
<interactiveMode>true</interactiveMode>
-->

<!-- offline  決定maven是否離線模式運行,默認離線 Default: false
<offline>false</offline>
-->

<pluginGroups>
</pluginGroups>

  <!-- proxies 設置上網代理服務器-->
<proxies>
 </proxies>

  <!-- servers 配置私服用戶名及密碼 -->
  <servers>
    <server>
      <id>study-nexus</id>
      <username>user1</username>
      <password>user123456</password>
    </server>
   </servers>

  <!--<mirrors>-->
    <!--<mirror>-->
      <!--<id>nexus-myself</id>-->
      <!--<mirrorOf>*</mirrorOf>-->
      <!--<name>Nexus myself</name>-->
      <!--<url>http://192.168.1.100 :8081/repository/maven-public/</url>-->
    <!--</mirror>-->
  <!--</mirrors>-->


  <!--根據配置進行激活選擇-->
  <profiles>
    <profile>
      <!--配置激活文件名,唯一不重複-->
      <id>study-nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://192.168.1.100 :8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://192.168.1.100 .245:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>study-nexus</activeProfile>
  </activeProfiles>
</settings>

5.2 pom.xml設置

創建一個項目,將其打爲jar 包並上傳至maven私服,創建項目自行創建,以下只對pom.xml進行配置說明

  • 設置發佈倉庫地址
 <!--設置發佈倉庫地址-->
  <distributionManagement>
    <!--releases版本發佈至此倉庫-->
    <repository>
      <id>study-nexus</id>
      <name>study-nexus</name>
      <url>http://192.168.1.100:8081/repository/maven-releases/</url>
    </repository>
    <!--snapshots版本發佈至此版本-->
    <snapshotRepository>
      <id>study-nexus</id>
      <name>study-nexus</name>
      <url>http://192.168.1.100:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
  • 設置編譯環境及插件
<!--設置構建插件及環境-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <!--構建設置-->
        <configuration>
          <encoding>utf-8</encoding>
          <!--java編譯版本-->
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

6 執行發佈及下載jar包操作

6.1 發佈jar包

直接使用idea的deploy命令即可

在這裏插入圖片描述

下圖中可看到剛纔上傳的jar報,座標,說明一下,如果是SNAPSHOT版本,版本號爲生成的時間戳,但可填寫baseVersion

在這裏插入圖片描述

6.2 下載jar包

# 在需要依賴的項目pom.xml增加依賴座標即可
<dependency>
  <groupId>com.study.nexus</groupId>
  <artifactId>nexus-api</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

7 .參考文檔

http://maven.apache.org/guides/mini/index.html
https://hub.docker.com/r/sonatype/nexus3
https://help.sonatype.com/repomanager3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章