nexus安裝
從nexus官網 下載最新的安裝包
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/admin123
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倉庫架構
將maven-central 代理倉庫修改為阿里雲倉庫:
結合鏡像將公司項目配置為強制從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
感興趣的小伙伴可關注個人公眾號:壹枝花算不算浪漫