1. 程式人生 > >初識Maven與nexus,及nexus安裝

初識Maven與nexus,及nexus安裝

linu 控制 依賴管理 查看 部署 process 編譯 jdk1 ado

一、了解Maven

  1. 優秀的構建工具
    通過簡單的命令,能夠完成清理、編譯、測試、打包、部署等一系列過程。同時,Maven跨平臺,無論是在Windows、還是在Linux或Mac上,都可以使用同樣的命令。

2.?依賴管理工具
項目依賴的第三方的開源類庫,都可以通過依賴的方式引入到項目中來。代替了原來需要首先下載第三方jar,再加入到項目中的方式。從而更好的解決了合作開發中依賴增多、版本不一致、版本沖突、依賴臃腫等問題。

具體是怎麽實現的呢?Maven通過坐標系統準確的定位每一個構件,即通過坐標找到對應的java類庫。

3.?項目信息管理工具
能夠管理項目描述、開發者列表、版本控制系統地址、許可證等一些比較零散的項目信息。除了直接的項目信息,通過Maven自動生成的站點,以及一些已有的插件,還能夠輕松獲得項目文檔、測試報告、靜態分析報告、源碼版本、日誌報告等非常具有價值的項目信息。


二、 Maven與Nexus
這個問題從Maven的第二個用處說起,依賴管理,通過在Pom中指定坐標的形式將jar引入到項目中。那這個過程,要經歷怎樣一個流程呢?從哪裏尋找jar?下載的jar放到哪裏?

將這個問題順下來,就知道nexus和maven的關系了。

從×××到jar?項目用到的jar又存放在哪裏?這引出了倉庫的概念,maven通過倉庫來統一管理各種構件。Maven的倉庫分為本地倉庫和遠程倉庫。
技術分享圖片

當Maven根據坐標尋找構件時,它首先會查看本地倉庫,如果本地倉庫存在此構件,則直接使用;如果本地倉庫不存在此構件,或者需要查看是否有更新的構件版本,Maven會去遠程倉庫查找,發現需要的構件之後,下載到本地倉庫再使用。

項目=>本地倉庫=>遠程倉庫

Nexus是一種遠程倉庫,根據上段的介紹,我們已經知道遠程倉庫的作用。在遠程倉庫中,默認的是中央倉庫,中央倉庫是Maven核心自帶的遠程倉庫。那就使用中央倉庫不就得了嗎,為什麽我們要安裝Nexus呢?

我們從項目實際開發來看:
1.一些無法從外部倉庫下載的構件,例如內部的項目還能部署到私服上,以便供其他依賴項目使用。

  1. 為了節省帶寬和時間,在局域網內架設一個私有的倉庫服務器,用其代理所有外部的遠程倉庫。當本地Maven項目需要下載構件時,先去私服請求,如果私服沒有,則再去遠程倉庫請求,從遠程倉庫下載構件後,把構件緩存在私服上。這樣,及時暫時沒有Internet鏈接,由於私服已經緩存了大量構件,整個項目還是可以正常使用的。同時,也降低了中央倉庫的負荷。
    技術分享圖片
    所以,Nexus僅僅是私服的一種。

三、 Nexus安裝

1.環境:centos7
版本:
jdk:jdk-7u45-linux-x64.rpm
nexus:nexus-2.14.2-01-bundle.tar.gz
maven:apache-maven-3.3.9-bin.tar.gz

2.安裝jdk,maven環境配置
配置:

JAVA_HOME=/usr/java/jdk1.7.0_45
JRE_HOME=/usr/java/jdk1.7.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$M2_HOME/bin
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
M2_HOME=/data/apache-maven-3.3.9

export JAVA_HOME JRE_HOME PATH CLASSPATH M2_HOME
source /etc/profile

版本查看:
java版本: java -version
maven版本:mvn --version

3.安裝,配置nexus
將下載的nexus-2.14.2-01-bundle.tar.gz包,解壓到/data 下
編輯nexus腳本文件
cd /data/nexus/nexus-2.14.2-01/bin

cat nexus
NEXUS_HOME=".."   ##nexus安裝目錄/data/nexus/nexus-2.14.2-01
RUN_AS_USER=root   ##啟動nexus用戶

有兩個文件:
nexus-2.14.2-01:nexus服務
sonatype-work:私有庫目錄

nexus設置啟動服務:
sh /data/nexus/nexus-2.14.2-01/bin/nexus

4.訪問nexus
登錄http://IP:8081/nexus/
默認用戶名和密碼:admin admin123

初識Maven與nexus,及nexus安裝