Maven使用教程二:nexus私服搭建及使用

nexus安裝

nexus官網 下載最新的安裝包java

1.打開命令行,切換到nexus-3.2.1-01/bin目錄下,回車。例:C:\Nexus\nexus-3.2.1-01\bin
2.輸入:nexus.exe/run,並回車
3.執行後出現如下信息表示安裝成功:

4.打開瀏覽器,輸入:localhost:8081,完成瀏覽器

能夠修改nexus的一些配置,有兩個配置文件,一個是在bin目錄下面的nexus.vmoptions,另一個是etc目錄下面的nexus-default.properties,裏面能夠修改端口號(默認是8081)架構

nexus默認的管理員帳號爲:admin/admin123maven

nexus中的各類倉庫

首先看下這個nexus圖,由於公司安裝的是2.x因此這個界面也是老版的界面截圖:單元測試

這裏看下type,如今來講下nexus四種倉庫類型:測試

  • hosted :宿主倉庫,這個倉庫,是用來把公司內部的發佈包部署到這個倉庫裏面來,而後公司內的其餘人就能夠從這個宿主倉庫裏去下載依賴使用
  • proxy:代理倉庫,這個倉庫不是用來給公司內部的發佈部署的,是代理了公司外部的各類倉庫,例如java.net,codehaus,jboss等等,最重要就是它代理了公司外部的中央倉庫,可是這裏也能夠修改nexus鏈接爲阿里雲鏡像倉庫,阿里雲去鏈接中央倉庫。
  • group:倉庫組,其實就是將各類宿主倉庫、代理倉庫所有組成一個虛擬的倉庫組,而後咱們的項目只要配置依賴一個倉庫組,至關於就是能夠自動鏈接倉庫組對應的各類倉庫。
  • 3rd party:該倉庫是個宿主倉庫,主要用來部署無法從公共倉庫獲取的第三方依賴包。
  • virtual:虛擬倉庫

最後還有倉庫的狀態和路徑:阿里雲

  • maven-central:這是maven中央倉庫的代理倉庫
  • maven-releases:該倉庫是個宿主倉庫,用於部署公司內部的release版本的發佈包(相似於1.0.0,,release的意思就是你的工程已經通過了完善的測試,單元測試,集成測試,QA測試,上生產環境使用了)到這個倉庫裏面,供其餘同事在生產環境依賴和使用
  • maven-snapshots:該倉庫是個宿主倉庫,用於部署公司內部的snapshot版本的發佈包到這個倉庫裏(若是你的某個工程還在開發過程當中,測試還沒結束,可是,此時公司裏其餘同事也在開發一些工程,須要依賴你的包進行開發和測試,聯調,此時你的工程的版本就是相似1.0.0-SNAPSHOT這樣的版本),供其餘同事在開發和測試的時候使用
  • 3rd party:該倉庫是個宿主倉庫,主要用來部署無法從公共倉庫獲取的第三方依賴包,好比說,你的公司依賴於第三方支付廠商的一個依賴包,那個依賴包不是開源的,是商業的包。那麼你是沒有辦法從maven中央倉庫獲取的。此時,咱們可能會本身手動從支付廠商那裏獲取到一個jar包,下載以後上傳到私服裏來,就放這個倉庫裏,3rd-party倉庫
    -maven-public:倉庫組,上面全部release倉庫都在這個倉庫組內

nexus倉庫架構
url

將maven-central 代理倉庫修改成阿里雲倉庫:
.net

結合鏡像將公司項目配置爲強制從nexus私服下載

咱們已經有了私服,下一步就是要將公司中的項目配置爲強制從公司內的私服來下載,不容許走外網,這樣就能夠統一收口管理。自己nexus私服也是代理了各類中央倉庫,直接用nexus私服就能夠了。命令行

一般會在settings.xml配置文件中,爲當前機器統一配置使用的私服倉庫地址,並且通常都是直接用私服中的倉庫組,在settings.xml中使用profiles便可

<profiles>
    <profile>
        <id>nexus</id>
        <repositories>
                <repository>
                    <id>nexus</id>
                    <name>Nexus</name>
                  <url>http://localhost:8081/nexus/content/groups/public</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>
                </repository>
        </repositories>
        <pluginRepositories>
                <pluginRepository>
                    <id>nexus</id>
                    <name>Nexus Plugin Repository</name>
                    <url>http://localhost:8081/nexus/content/groups/public</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>
                </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>

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

nexus權限管理&帳號建立

咱們進行團隊項目開發時,經常本身寫的jar包須要被別的團隊依賴,那麼如何將咱們寫好的代碼,清理/編譯/測試/打包/部署到私服上去呢?

nexus的權限是典型的RBAC模型,role-based access control,每一個用戶能夠分配多個角色,每一個角色分配多個全新啊,每一個權限就是一個具體的功能。

  • nexus默認有三個用戶:
  • amdin:管理員帳號,密碼是admin123
    deployment:能夠搜索和部署構建,就是普通的開發帳號,密碼是deployment123(在nexus 3.x最新版本已經被消除了)
  • anonymout:若是沒有給認證信息,就是個匿名用戶,能夠下載依賴,查看依賴

能夠在Users頁面添加用戶,管理用戶,還能夠針對用戶的role tree進行角色的分配。

將開發好的模塊部署到nexus上

1.發佈倉庫配置

將項目發佈包部署到哪一個倉庫中,是須要用下面的pom.xml中的配置來設置的

<distributionManagement>
    <repository>
        <id> nexus-releases</id>
        <name> Nexus Release Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id> nexus-snapshots</id>
        <name> Nexus Snapshot Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

2.部署專用的帳號配置

可是nexus倉庫對於普通的匿名用戶是隻讀的,也就是說,只能下載依賴,不能部署發佈包,所以若是要可以部署發佈包,還須要在settings.xml文件裏經過 元素配置使用專用的部署用戶,來經過認證,進行發佈包的部署。

須要在settings中配置:

<servers>
    <server>
        <id>nexus-releases</id>
        <username>deployment</username>
        <password>deployment123</password>
    </server>
    <server>
        <id>nexus-snapshots</id>
        <username>deployment</username>
        <password>deployment123</password>
    </server>
</servers>

3.執行mvn deploy命令部署到私服

執行mvn clean deploy命令,就可讓maven自動給咱們編譯源代碼、運行單元測試、打成jar包、將jar包安裝到本地倉庫、將Jar包部署到配置的遠程私服倉庫裏面去

4.mvn命令說明

  • mvn clean package:清理、編譯、測試、打包
  • mvn clean install:清理、編譯、測試、打包、安裝到本地倉庫,好比你本身負責了3個工程的開發,互相之間有依賴,那麼若是你開發好其中一個工程,須要在另一個工程中引用它,此時就須要將開發好的工程jar包安裝到本地倉庫,而後才能夠在另一個工程聲明對它的依賴,此時會直接取用本地倉庫中的jar包
  • mvn clean deploy:清理、編譯、測試、打包、安裝到本地倉庫、部署到遠程私服倉庫,這個其實就是你負責的工程寫好了部分代碼,別人須要依賴你的jar包中提供的接口來寫代碼和測試。此時你須要將snapshot jar包發佈到私服的maven-snapshots倉庫中。供別人在本地聲明對你的依賴和使用。

5.對於極其少數的jar包手動上傳
新版本里面,其實主要是建議用命令行手動上傳的方式,就不用界面上上傳的方式了:

<server>
    <id>nexus-3rd-party</id>
    <username>deployment</username>
    <password>deployment123</password>
</server>

執行mvn命令:

men deploy:deploy-file -DgroupId=com.csource -DartifactId=fastdfs-client-java -Dversion=1.24 -Dpackaging=jar -Dfile=F:\DevelopmentKit\fastdfs_client_v1.24.jar -Durl=http://localhost:8081/repository/3rd-party/ -DrepositoryId=nexus-3rd-party

感興趣的小夥伴可關注我的公衆號:壹枝花算不算浪漫

相關文章
相關標籤/搜索