maven在本地搭建倉庫的實際需求
maven在項目構建過程需要下載一些必要的軟件包,這些默認的下載鏈接都是訪問maven的遠程中央倉庫Central Repo。如果項目中的成員,每次第一次構建的時候都需要訪問外網去下載文件,這樣效率不高,下載速度緩慢,且本地機器無法訪問外網則會造成構建失敗。所以此時如果有一個本地私服去緩存這些在項目中使用到的jar文件信息,便變得十分有意義了。
我使用Sonatype的Nexus搭建maven倉庫
Nexus提供兩種安裝方式:bundle安裝,只要有jre就能直接運行;war安裝,需要依賴tomcat
這里介紹bundle安裝,不需要依賴tomcat
1. 下載安裝包
http://www.sonatype.org/nexus/go
nexus-xxxx-bundle.zip
2. 解壓后放在本地任意目錄
解壓會發現兩個文件夾nexus-xxxx和sonatype-work。
第一個文件夾是核心文件,第二個文件夾用來存儲下載下來的jar
3. 配置環境變量PATH
Path:E:\maven\nexus-2.13.0-01-bundle\nexus-2.13.0-01\bin
4. 配置java路徑
找到文件 ..\nexus-2.13.0-01\bin\jsw\conf\wrapper.conf
修改wrapper.java.command=D:\Java\jdk1.7.0_51\bin\java (java命令絕對路徑)
5. 命令行窗口
> nexus install
安裝成功后,在服務中找到nexus,啟動服務
6. 輸入localhost:8081/nexus即可訪問。
端口可在nexus-2.2-01\conf\nexus.properties文件中修改
登錄,默認用戶名admin,密碼admin123。
7. 倉庫到此搭建完成
Maven項目使用遠程倉庫
- 修改maven項目的pom.xml
只對指定項目生效,在pom.xml中添加以下節點
<repositories> <repository> <id>nexus</id> <url>http://localhost:8081/nexus/content/groups/public/</url> </repository> </repositories>
- 修改maven配置setting.xml
對所有項目都生效,在setting.xml中添加以下節點(貌似不好用。。)
<mirrors> <mirror> <id>nexus</id> <name>private nexus</name> <url>http://localhost:8081/nexus/content/groups/public</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
pom.xml和setting.xml中的節點作用,具體的到maven網上都可以找到,功能是比較強大的