無網絡環境下內網maven私服搭建


1.搭建Maven私服背景

公司還是按捺不住,要搭建一個自己的Maven本地倉庫,可以讓開發人員down架包,從內網還是快很多。

這樣公司的maven本地倉庫就是 開發人員自己電腦上的maven倉庫  和    Maven遠程倉庫  之間的一個緩沖倉庫。

 

那要構建一個maven私服,需要用到Maven倉庫管理軟件,關於Apache Archiva,Artifactory,Sonatype Nexus的區別,有下面這些的參考對比:

http://blog.sina.com.cn/s/blog_72ef7bea0102vq0k.html

http://www.sonatype.org/nexus/2015/02/23/migrating-from-artifactory-archiva-or-a-raw-maven-repository-to-sonatype-nexus/

 

 

2.安裝Nexus,並初次啟動Nexus

這里我們下載開源版 Nexus OSS。Nexus 提供兩種安裝包,一種是包含 Jetty 容器的 bundle 包,另一種是不包含容器的 war 包。下載地址:http://www.sonatype.org/nexus/go

這里先以windows上為例【Linux上之后再來一份】

 

在你點擊下載之后,會有Read THE BOOK 的入口和加入NENUX社區的入口。

這里直接給你ReadTheBook的地址:https://help.sonatype.com/display/NXRM3

這里你可以找到官方提供的完整安裝和使用教程。【因為這里使用的是Nexus3的版本,和參考文章中不大一致】

 

下載的壓縮包解壓下來

 

然后cmd,命令窗口進入nexus-3.5.2-01目錄下的bin目錄下,按照官方的啟動方式,需要在bin目錄下使用nexus /run命令啟動,如下圖

確認之后,下面會打印出來啟動的相關信息,接下來,耐心等待它啟動完成。

直到出現下面這個,才算啟動完成。

 

 

初次啟動之后,你可以在瀏覽器上訪問nexus這個maven管理器

地址:http://localhost:8081/

當然,你可以使用默認的用戶登錄。

用戶名:admin

密碼:admin123

 

此時,觀看命令窗口,會有記錄相關的操作記錄。

 

 

 3.將nexus配置為系統服務

根據官方文檔說明,將nexus配置為系統服務是一個很好的選擇。因為

第一:上面的安裝和啟動過程並沒有默認的把nexus作為服務加入系統服務中;

第二:這樣下次服務器重啟,服務也會重啟。

但是這個有個前提,就是已經確保安裝了Java運行時環境。

 

 

接下來,我們重新打開一個窗口,去將nexus加入系統服務  

最后的<optional-service-name>,咱們直接命名成nexus就好。【當然,最后這個不指定的話,默認就是創建成nexus服務名】

在windows7上安裝nexus為系統服務時,報錯:could not open SCManager 

但是報錯如下:

 

解決方法:

 

然后再次運行

如果再解決不了,那就在

直接以管理員身份運行這個命令提示符,然后安裝服務。

 

顯示安裝成功之后,可以進入控制面板---》管理工具---》服務  

查找名為nexus的服務

 

你可以選擇,點擊上面的啟動按鈕啟動服務,也可以用下面的命令啟動服務

【當然,可以在上面配置啟動參數,這個之后再去查看配置】

 

 

啟動完成之后,試着訪問一下http://localhost:8081/

 

因為上面服務是自動的。

重啟電腦之后,再次訪問,可以訪問到,完美。

 

 

4.配置nexus和熟悉它

第一步,跟隨着說明文檔,看看下載nexus下來之后,有兩個目錄

nexus-3.5.2-01    安裝目錄

bin    包含nexus的啟動腳本和相關配置      

etc    jetty、karaf等配置文件

jre    jre環境

lib    java架包庫

public  關於nexus應用在本地跑起來所需要的資源

system  應用所有的插件和組件

LICENSE.txt 和 NOTICE.txt    版權聲明和法律細則

 

sonatype-work\nexus3    數據文檔

blobs/      創建blob的默認路徑,如果你指定了絕對路徑,那就不在這里了

cache/      當前緩存的karaf包的信息

db/        OrientDB數據庫的數據,用於存儲nexus的元數據的數據庫

elasticsearch /    當前配置的Elasticsearch狀態

etc/          大概是運行時配置狀態和關於資源庫的自定義的相關的東西

health-check/      看目錄,健康檢查的相關報告的存儲目錄吧

keystores/        自動生成的關於資源庫的ID主鍵

log/            運行實例生成的日志文件,也有日志文件的壓縮包,貌似是每天都會生成日志文件,你可以定期刪除老的日志文件

tmp/            用於存儲臨時文件的目錄

 

具體每個目錄下的各個配置文件的作用,請參考官方文檔說明:https://help.sonatype.com/display/NXRM3/Installation

 

如果你想配置nexus的應用在本地啟動的JVM參數,可以在nexus.vmoptions

 

如果你想改變nexus的端口號,可以在nexus-default.properties

 

 

5.搭建maven私服資源庫

由於現在使用的nexus3,所以在nexus應用上資源庫初始化目錄和nexus2有很大的不同,但是類型都是一樣的。

第一步:首先http://localhost:8081/

登錄上nexus,未登錄的狀態下是這樣的。

使用默認用戶名admin密碼admin123登錄后,如下

 

第二步:使用nexus3要搭建maven私服的核心功能

在nexus安裝並啟動之后,我大概的把整個nexus的官方說明文檔走了一遍,主要就是介紹了左側菜單中的各個功能模塊。https://help.sonatype.com/display/NXRM3/Configuration

有興趣去看看,還是很有幫助的。

====================================================================================================================

-------------------------------------------------------------------------------------普及-----------------------------------------------------------------------------------------------------------------

上面提到的一點,不管nexus版本是怎么樣的,至少,repository的類型是一樣的。

先看一下大概的目錄結構:

根據多方的文檔和別人的博客,再綜合官網的解釋,我就這樣理解得出:

資源庫也就是這么三種,如上圖中  【代理資源庫】【托管資源庫】【組資源庫】,其實名字就是我自己瞎起的。

具體解釋一下:

【代理資源庫】:就是配置了外網的maven遠程倉庫地址的資源庫,本地找不到,就會通過代理資源庫中的地址,找到遠程倉庫,從遠程倉庫中下載所需要的jar。

【托管資源庫】:就是放在本地的資源庫,零零散散的jar,從遠程倉庫中下不到,只能自己在網上找,找到jar下載下來,放在托管資源庫中,交給nexus統一管理。不然哪天想去用連接數據庫的jar包,還得自己翻磁盤,多麻煩。

【組資源庫】 :從上面①+②看出來,其實組資源庫中並沒有jar包,而是把代理資源庫和托管資源庫統一配置到組資源庫中,然后組資源庫作為一個唯一的public提供給所有人使用。就像工人1+工人2把自己的賬單統一給包工頭,讓包工頭去跟老板結賬是一個道理。

 

好,明確了這一點,開始往下看吧。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

如果你想直入主題,往下看。

①在創建 repository之前,還是需要先設定一個指定的文件存儲目錄,便於統一管理。

 由下面新建的完成的,可以看出,

 

 

②第二步,創建Proxy Repository  代理資源庫

創建頁面出來之后,頁面上有三個input框是必填的:

 遠程Maven地址:https://repo1.maven.org/maven2/

 

其他的不用更改了。保存就好了。

文章來源: 使用Nexus3搭建Maven私服+上傳第三方jar包到本地maven倉庫

1、在搭建過程中,要記得新建repository是要根據nexus規則分別新建proxy,hosted,group三個Browse,並將proxy和hosted加入到group

2、安裝完成后在有網的情況下測試是否安裝成功,將setting文件的下載地址改為私服地址后,可以看到我們新建的repository中沒有jar的,然后在刪除項目已經down好的jar,然后在執行mvn install,剛才刪除的jar又重新down回來后,在去看私服上新建的倉庫,會發現該庫中已經有了你項目中的所有jar包紀委安裝成功,可以移植到內網開發環境。至於內網中初始倉庫的jar包和后面項目所需的新jar包,我們還是采取了最原始的方法,拷到setting指向的本地倉庫(.m2),然后在項目中執行mvn install,即可上傳到私服。其他開發人員就可以直接引用了(此方法為個人愚見,歡迎有更優秀想法指導賜教)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM