1. 程式人生 > 程式設計 >Maven釋出專案 (jar包) 到Nexus私服中的操作

Maven釋出專案 (jar包) 到Nexus私服中的操作

1 需求說明

開發完專案後,將專案版本釋出到Nexus私服中.

2 實現步驟

2.1 Maven服務的setting.xml檔案

(1) 如果本機安裝了Maven服務,可在${MAVEN_HOME}/conf/setting.xml中指定私服相關的配置:

  <!-- 在servers標籤下配置server,包括: 私服的使用者名稱和密碼,在deploy專案時需要用到 -->
  <server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
  <server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
  </server>

  <!-- 在profiles標籤下配置profile,包括: 私服所配的倉庫、各個外掛的倉庫地址 -->
  <profile>
   <!-- profile的id -->
   <id>dev</id>
   <repositories>
    <repository>
     <!-- 倉庫id,Repositories可以配置多個倉庫,要確保id不重複 -->
     <id>nexus</id>
     <!-- 倉庫地址,即nexus倉庫組的地址 -->
     <url>http://ip:port/nexus/content/groups/public/</url>
     <!-- 是否下載Releases構件 -->
     <releases>
      <enabled>true</enabled>
     </releases>
     <!-- 是否下載Snapshots構件 -->
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
    </repository>
   </repositories>

   <pluginRepositories>
    <!-- 外掛倉庫,Maven的執行依賴外掛,也需要從私服下載外掛 -->
    <pluginRepository>
     <!-- 外掛倉庫的id不允許重複,如果重複,後配置的優先 -->
     <id>public</id>
     <name>Public Repositories</name>
     <url>http://ip:port/nexus/content/groups/public/</url>
    </pluginRepository>
   </pluginRepositories>
  </profile>
  
  <!-- 還需指定聯網倉庫,保證本私服中沒有相關jar包或外掛時可聯網獲取 -->
  <profile>
   <id>internet</id>
   <repositories>
    <repository>
     <id>nexus-aliyun</id>
     <name>Nexus aliyun</name>
     <layout>default</layout>
     <!-- 這裡配置阿里雲的倉庫 -->
     <url>http://maven.aliyun.com/nexus/content/groups/public</url>
     <snapshots>
      <enabled>false</enabled>
     </snapshots>
     <releases>
      <enabled>true</enabled>
     </releases>
    </repository>
   </repositories>
  </profile>

(2) 如果本機沒有安裝Maven服務,可在IDEA或Eclipse等開發環境預設使用的Maven配置中修改,修改內容同上.

2.2 專案的pom.xml檔案

在專案的pom.xml中的一級標籤project下新增如下內容:

  <!-- 釋出選項: id必須與setting.xml檔案中server的id相同 -->
  <distributionManagement>
    <repository>
      <id>releases</id>
      <name>display</name>
      <url>http://ip:port/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <name>display</name>
      <url>http://ip:port/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

2.3 釋出專案

以IDEA為例,選中專案,右鍵 -> Run Maven -> deploy,

或者在右邊欄選中Maven欄目,點選專案 -> Lifecycle -> deploy,執行即可將專案釋出到倉庫中去.

注意:倉庫中不能存在與當前專案名稱+版本號相同的專案,否則將導致出錯: Bad Request: 400.

補充知識:maven上傳jar包到nexus私服後的存放路徑 以及 使用IDEA上傳jar包的步驟

maven上傳jar包到nexus私服的方法,網上大神詳解很多,那麼上傳後的jar包存放到哪裡了呢?

在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上傳jar包。最後結果如下:

Maven釋出專案 (jar包) 到Nexus私服中的操作

點進去後展示的是:

Maven釋出專案 (jar包) 到Nexus私服中的操作

這讓我一度以為是以jar包的形式儲存在本地,但事實證明,儲存在本地的最終是一個 .bytes 型別的檔案,它的預設路徑在\nexus-3.2.1-01-win64\sonatype-work\nexus3\blobs\default\content下面

Maven釋出專案 (jar包) 到Nexus私服中的操作

即使jar包是同樣的,但是deploy了兩次,那麼就會展示兩次

Maven釋出專案 (jar包) 到Nexus私服中的操作

nexus設定自定義路徑時,要設定Blob Stores,預設只有default一個,新建一個路徑的話就可以自己指定了

Maven釋出專案 (jar包) 到Nexus私服中的操作

簡單說下在搭建好nexus私服以後,將jar包上傳到私服的步驟

場景:使用IDEA,maven專案打jar包後上傳

在pom.xml檔案中配置

<distributionManagement>
  <repository>
    <id>nexus</id>
    <name>maven-releases</name>
    <url>http://localhost:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus</id>
    <name>maven-snapshots</name>
    <url>http://localhost:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

<id>標籤對應著 maven的配置檔案setting.xml中<server>的設定,如下:

<servers>
  <server>
   <id>nexus</id>
   <username>admin</username>
   <password>admin123</password>
  </server>
</servers>

最後使用deploy操作,將打好的jar包上傳到nexus私服上

以上這篇Maven釋出專案 (jar包) 到Nexus私服中的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。