Linux搭建本身Nexus私服

本文介紹如何在Linux服務器經過Docker搭建Nexus私服java

1、安裝Nexus

一、建立存放數據的位置

# 進入個目錄,這個大家隨便
cd /srv
# 建立個文件夾
mkdir nexus-data
# 賦予權限,否則啓動會報錯,無操做權限
chmod 777 nexus-data

二、啓動

執行如下命令便可,會自動拉取鏡像並啓動docker

docker run -d -p 8081:8081 --name nexus -v /srv/nexus-data:/nexus-data --restart=always sonatype/nexus3

經過docker logs -f nexus查看啓動日誌,當出現Started Sonatype Nexus OSS說明啓動成功,這時經過http://ip:8081便可訪問
index
點擊右上角Sign in進行登陸,帳號爲admin,密碼須要去鏡像中查看apache

# 進入鏡像
docker exec -it nexus bash
# 查看密碼,路徑在登陸框會提示,而後複製便可,登錄成功後會讓你修改密碼
cat /nexus-data/admin-password

至此,就啓動完成了,進入主頁後點擊左邊菜單欄的Browse便可查看你擁有的倉庫啦緩存

2、Nexus倉庫

一、倉庫類型

Nexus有四種倉庫和四種倉庫類型bash

a、倉庫

倉庫名 描述
maven-central maven中央庫,默認從https://repo1.maven.org/maven...
maven-releases 私庫發行版jar
maven-snapshots 私庫快照(調試版本)jar
maven-public 倉庫分組,把上面三個倉庫組合在一塊兒對外提供服務,在本地maven基礎配置settings.xml中使用

b、類型

類型 描述
group(倉庫組類型) 用於方便開發人員本身設定的倉庫
hosted(宿主類型) 內部項目的發佈倉庫(內部開發人員,發佈上去存放的倉庫)
proxy(代理類型) 從遠程中央倉庫中尋找數據的倉庫(能夠點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑)
virtual(虛擬類型) 虛擬倉庫(這個基本用不到,重點關注上面三個倉庫的使用)

二、拉取jar包流程

Maven可直接從宿主倉庫下載構件,也能夠從代理倉庫下載構件,而代理倉庫間接的從遠程倉庫下載並緩存構件,爲了方便,Maven能夠從倉庫組下載構件,而倉庫組並無實際的內容(下圖中用虛線表示,它會轉向包含的宿主倉庫或者代理倉庫得到實際構件的內容)
repo服務器

三、建立倉庫

進過上面的講解,咱們對倉庫已經有了瞭解,接下來咱們進行建立倉庫,分爲是代理倉庫(proxy)宿主倉庫(hosted)倉庫組(group),點擊主頁上面的小螺絲而後在選擇Repositories進入倉庫管理列表,而後就能夠開始建立咱們的倉庫啦,選擇倉庫類型的時候必定要選擇maven2maven

a、proxy代理倉庫

咱們使用阿里的中央倉庫
proxy工具

b、hosted宿主倉庫

這裏能夠建立releasessnapshot類型的倉庫,這裏就演示一種
hosted開發工具

c、group倉庫組

group

3、項目配置

前兩章走完咱們已經在Linux服務器部署好了nexus而且建立好了咱們的倉庫,接下來咱們就來試着在項目中配置ui

一、建立一個Maven項目

爲了演示,就隨便建立個工具類玩,如下是目錄結構
project

二、pom文件

這裏爲了演示我就配了release倉庫,實際上應該同時要配置snapshot倉庫,maven會判斷版本後面是否帶了-SNAPSHOT,若是帶了就發佈到snapshots倉庫,不然發佈到release倉庫

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.gjing</groupId>
    <artifactId>demo</artifactId>
    <version>1.0</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <distributionManagement>
        <repository>
            <!--ID能夠隨便寫,可是要與maven的setting文件中一致-->
            <id>releases</id>
            <!--指向倉庫類型爲hosted(宿主倉庫)的儲存類型爲Release的倉庫---->
            <url>http://你nexus倉庫的IP:8081/repository/me-release/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
            </plugin>
        </plugins>
    </build>
</project>

三、maven配置setting文件

id必定要和項目pom文件中的一致

<servers>
    <server>
      <id>releases</id><!--對應項目pom文件中設置的-->
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>

4、發佈

若是使用的是IDEA開發工具能夠直接在右邊工具欄Maven工具點擊deploy,也能夠直接在命令行進入本項目根目錄進行mvn deploy
deploy
這時nexus私服上也會出現咱們的jar包
remote
到此就發佈成功啦

5、使用

讓maven項目使用nexus做爲遠程倉庫有兩種方式,第一種是在項目的pom.xml中進行更改,讓單個項目使用nexus倉庫;另外一種是經過修改maven的配置文件settings.xml進行更改,讓全部項目都使用nexus倉庫。咱們這裏採起第二種,只須要setting.xml就能夠了。還有就是拉取jar的私服倉庫地址只要寫咱們的倉庫組就ok,由於在建立這個組的時候,裏面已經包含了其它三個倉庫

一、settings.xml文件

在maven的settings文件中找到mirrors,加上咱們組倉庫的mirror,url填寫咱們建立的組地址便可,id、name能夠隨便填寫,mirrorOf能夠和我寫同樣的

<mirrors>
    <mirror>
        <id>mynexus</id>
        <name>myself nexus repository</name>
        <url>http://xxx:8081/repository/me-group/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

二、驗證

只須要在其餘項目中pom文件引入便可,成功引入且在項目中能夠正常使用咱們剛剛定義的工具類
test


到此整個流程就結束啦,若是有任何問題能夠在評論區告訴我哦!!!

相關文章
相關標籤/搜索