私服是一個特殊的遠端倉庫,它是架設在區域網內的倉庫服務。私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。當Maven需要下載構建的使用,它先從私服請求,如果私服上沒有的話,則從外部的遠端倉庫下載,然後快取在私服上,再為Maven的下載請求提供服務。
在maven中,配置setting.xml,之後通過mvn deploy命令可以將包傳入私服
有些第三方jar包,我們需要一般通過新建倉庫進行上傳
setting.xml配置
<servers> <server> <id>nexus</id> <username>gaming</username> <password>gaming</password> </server> </servers>
pom.xml配置下
<distributionManagement> <repository> <id>nexus</id> <name>releases Repository</name> <url>http://192.168.1.222/repository/gaming/</url> </repository> </distributionManagement>
1、自己maven私服更容易維護,公司開發從maven私服遷出jar到本地倉庫更快
2、有些公司未開放外網給開發人員
登入nexus後臺,選擇建立repository
respository介紹
proxy:是遠端倉庫的代理。比如說在nexus中配置了一個central repository的proxy,當使用者向這個proxy請求一個artifact,這個proxy就會先在本地查詢,如果找不到的話,就會從遠端倉庫下載,然後返回給使用者,相當於起到一箇中轉的作用;
Hosted:是宿主倉庫,使用者可以把自己的一些構件,deploy到hosted中,也可以手工上傳構件到hosted裡。比如說oracle的驅動程式,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted裡;
Group:是倉庫組,在maven裡沒有這個概念,是nexus特有的。目的是將上述多個倉庫聚合,對使用者暴露統一的地址,這樣使用者就不需要在pom中配置多個地址,只要統一配置group的地址就可以了右邊那個Repository Path可以點選進去,看到倉庫中artifact列表。不過要注意瀏覽器快取。
選中maven2(hosted)
自定義倉庫名,其餘使用預設
之後就上傳成功,這是在後臺上傳
也可以通過命令上傳
mvn deploy:deploy-file -DgroupId=net.sf -DartifactId=json-lib -Dversion=2.4 -Dpackaging=jar -Dfile=E:/json-lib-2.4.jar -Durl=http://192.168.1.222/nexus/repository/releases/ -DrepositoryId=releases
引數說明
mvn deploy:deploy-file
- -DgroupId=xxxxxx 就相當於pom中的groupId
- -DartifactId=xxxxxx 就相當於pom中的artifactId
- -Dversion=xxxxxx 就相當於pom中的版本號version
- -Dpackaging=xxxxxx 就相當於pom中打包方式
- -Dfile=xxxxxx 本地環境
- -Durl=xxxxxx 上傳的url
- -DrepositoryId=xxxxxx 對應的是setting.xml 裡邊的id
下載,需要修改maven的setting.xml
設定repository
之後reimport即可。