人最先衰老的從來不是容貌,而是那份不顧一切的闖勁.
前面①中已經介紹了搭建私服和建立倉庫,本文中介紹怎麼管理建構,idea開發工具釋出jar包到私服.
一:在maven管理器中建立人員以及賦予權限
第一步:建立權限(Privileges)
第二步:建立角色(Roles)
第三步:建立人員
填寫完資訊,點選儲存.
二:讓maven項目使用搭建的maven私服
maven下的setting.xml檔案和項目中的pom.xml檔案的關系:
Ⅰ.settting.xml檔案就是本地,電腦上的全局變量;而pom.xml檔案就是局部變量。
Ⅱ.項目建立的pom.xml檔案對于項目來說,優先級别最高。如果pom.xml檔案中沒有配置鏡像位址的話,隻能去按照全局變量中定義的位址去下載下傳.
Ⅲ.那怎麼去找全局變量呢?IDE【編譯工具】中直接指定确定的setting.xml檔案,這樣在pom.xml檔案中沒有的情況下,IDE就按照設定的去找對應的setting.xml檔案。
注:有一點要注意的就是,maven如果是你自己下載下傳的,那裡面肯定會有一份setting.xml檔案。什麼都不配置的話,它全部都是按照預設值去幹的,例如本地倉庫它預設的就是放在使用者/.m2/檔案夾下的。
①在原始的setting檔案中加入
拷貝的這個位址,就是下面即将在setting.xml檔案中添加時使用的。可以對應下面的setting.xml檔案中看。
<!--id 自定義 username和password 為nexus中的人員賬号和密碼-->
<servers>
<server>
<id>nexus_dep</id>
<username>xxxx</username>
<password>xxxx</password>
</server>
<server>
<id>nexus_admin</id>
<username>xxxx</username>
<password>xxxx</password>
</server>
</servers>
<!--ID 為server中的相應ID,URL為nexus相應倉庫的URL pom.xml檔案中沒有指定鏡像位址,則項目使用此處配置的,如果pom.xml檔案中配置了,此處可以不需要配置-->
<mirrors>
<mirror>
<id>nexus_dep</id>
<mirrorOf>*</mirrorOf>
<url>http://ip+port/repository/maven-public/</url>
</mirror>
</mirrors>
②修改項目中的pom.xml檔案
A:配置遠端倉庫位址
B.配置打包時釋出jar包到私有倉庫
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 倉庫服務鏡像 maven setting檔案中配置了,此處可以不用配置 ID和name自定義-->
<repositories>
<repository>
<id>myMaven</id>
<name>myMaven</name>
<url>http://ip+port/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!--釋出到私服相關配置 ID需要與setting檔案中的server ID對應-->
<distributionManagement>
<repository>
<id>nexus_dep</id>
<name>Releases</name>
<url>http://ip+port/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus_dep</id>
<name>Snapshot</name>
<url>http://ip+port/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
<repositories>的配置,你可以在它下面添加多個<repository> ,每個<repository>都有它唯一的ID,一個描述性的name,以及最重要的,遠端倉庫的url。此外,
<releases><enabled>true</enabled></releases>告訴Maven可以從這個倉庫下載下傳releases版本的構件
<snapshots><enabled>false</enabled></snapshots>告訴Maven不要從這個倉庫下載下傳snapshot版本的構件。
禁止從公共倉庫下載下傳snapshot構件是推薦的做法,因為這些構件不穩定,且不受你控制,應該避免使用。如果你想使用區域網路内組織内部的倉庫,可以激活snapshot的支援。
在pom檔案中加入distributionManagement節點,注意:pom.xml中repository裡的id需要和maven中setting.xml裡的server id名稱保持一緻.
③釋出jar包到私服
Q&A:
1.重複釋出出現 Return code is: 400, ReasonPhrase: Repository does not allow updating assets: maven-releases.
原因:經排查發現是因為重複釋出導緻的。maven私有倉庫預設不允許重複部署。
浏覽器登入nexus管理界面–>設定圖示–>Repository–>Repositories–>maven-releases–>Hosted–>請選擇‘Allow redeploy’政策,預設是disable政策,然後儲存。 請注意,不同版本的nexus,進入的路徑可能有細微差別。
- 如果出現400,需要注意項目下的pom.xml檔案和maven使用的setting.xml檔案的配置是否一緻。
- 如果出現401,需要檢查maven使用的setting.xml中的帳号和密碼是否正确,相應的repository是否為“Allow Redeploy”。
2,釋出無權限 Could not transfer artifact from/to XXXXXX Not authorized
原因,如果是使用的建立人員,則人員沒有配置相應權限.
3.maven下載下傳jar包,檔案以.lastUpdated結尾
原因:倉庫裡面沒有相應的jar包
解決:
1.先删除本地的檔案(通過cmd批量删除本地倉庫中以.lastUpdated結尾的檔案 del *.lastUpdated /s)
2.上傳jar包到私服
3.在項目中重新下載下傳jar包
三:查詢jar包
點開檢視:
點進入jar包的這個概要資訊
四:上傳jar包
1.使用指令上傳第三方jar到nexus
上傳一個處理word的jar包到nexus上,jar包為jacob,資源庫為hosted
我們先在nexus上搜尋一下:下面是搜不出來的
把hosted資源庫配置到maven的settting.xml檔案中
<!--id自定義,但是在使用指令上傳的時候會用到-->
<server>
<id>myself_hosted</id>
<username>admin</username>
<password>admin123</password>
</server>
使用以下指令
導入第三方jar的指令
mvn deploy:deploy-file -DgroupId=sxd.jar -DartifactId=jacob -Dversion=1.18 -Dpackaging=jar -Dfile=G:\jar\jacob-1.18.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted
導入第三方pom檔案的指令
mvn deploy:install-file -Dfile=D:\document\IdeaProjects\myTestDocument\jar\tx-lcn-4.2.0-SNAPSHOT.pom -DgroupId=com.codingapi -DartifactId=tx-lcn -Dversion=4.2.0-SNAPSHOT -Dpackaging=pom
指令解釋:
-DgroupId=sxd.jar 自定義
-DartifactId=jacob 自定義
-Dversion=1.18 自定義 三個自定義,構成pom.xml檔案中的坐标
-Dpackaging=jar 上傳的類型是jar類型
-Dfile=G:\jar\jacob-1.18.jar jar的本地磁盤位置
-Durl=http://localhost:8081/repository/myself_hosted/ hosted資源庫的位址,下圖中
-DrepositoryId=myself_hosted setting.xml檔案中配置的ID
上傳完成,再nexus中檢視一下:
上傳成功!!!
2.使用視窗Upload
Extension:類型(jar/pom)
注:jar檔案和pom檔案都要上傳,否則下載下傳代碼的時候沒有相應的pom檔案
至此maven項目使用maven倉庫私服相關配置結束,感謝大家閱讀!