天天看點

Maven deploy部署jar包到遠端私倉

Maven deploy部署jar包到遠端私倉

maven deploy介紹

maven中的倉庫分為兩種,snapshot快照倉庫和release釋出倉庫。snapshot快照倉庫用于儲存開發過程中的不穩定版本,release正式倉庫則是用來儲存穩定的發行版本。定義一個元件/子產品為快照版本,隻需要在pom檔案中在該子產品的版本号後加上-SNAPSHOT即可(

注意這裡必須是大寫

),如下:

<groupId>com.xxx.abc.bbs.bxx</groupId>
<artifactId>TestReporter</artifactId>
<packaging>jar</packaging>
<name>TestReporter</name>
<version>1.0-SNAPSHOT</version>
           

maven會根據子產品的版本号(pom檔案中的version)中是否帶有-SNAPSHOT來判斷是快照版本還是正式版本。如果是快照版本,那麼在mvn deploy時會自動釋出到快照版本庫中,而使用快照版本的子產品,在不更改版本号的情況下,直接編譯打包時,maven會自動從鏡像伺服器上下載下傳最新的快照版本。如果是正式釋出版本,那麼在mvn deploy時會自動釋出到正式版本庫中,而使用正式版本的子產品,在不更改版本号的情況下,編譯打包時如果本地已經存在該版本的子產品則不會主動去鏡像伺服器上下載下傳。

是以,我們在開發階段,可以将公用庫的版本設定為快照版本,而被依賴元件則引用快照版本進行開發,在公用庫的快照版本更新後,我們也不需要修改pom檔案提示版本号來下載下傳新的版本,直接mvn執行相關編譯、打包指令即可重新下載下傳最新的快照庫了,進而也友善了我們進行開發。

私倉賬号和密碼

修改maven配置檔案,在$MAVEN_HOME/conf/setting.xml中增加如下配置:

<server>
    <id>maven-releases</id>
    <username>admin</username>
    <password>admin123</password>
    </server>
    <server>
    <id>maven-snapshots</id>
    <username>admin</username>
    <password>admin123</password>
    </server>
           

注意這裡配置的server的id必須和pom檔案中的distributionManagement對應倉庫的id保持一緻,maven在處理釋出時會根據id查找使用者名稱和密碼進行登入和檔案的上傳釋出。

遠端釋出到私服

修改maven配置檔案,在$MAVEN_HOME/conf/setting.xml中增加如下配置:

<profiles>
 <profile>
       <id>defaultProfile</id>
       <repositories>
         <repository>
             <id>maven-releases</id>
             <name>User Porject Release</name>
             <url>http://nexus.tbb.com/repository/maven-releases/</url>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
             <releases>
                 <enabled>true</enabled>
             </releases>
         </repository>
         <repository>
             <id>maven-snapshots</id>
             <name>User Porject Snapshot</name>
             <url>http://nexus.tbb.com/repository/maven-snapshots/</url>
             <snapshots>
                 <enabled>true</enabled>
                 <updatePolicy>always</updatePolicy>
             </snapshots>
         </repository>
     </repositories>
     </profile>
     </profiles>
           
或者

修改POM/xml檔案,如下:

<repositories>
    <repository>
        <id>maven-releases</id>
        <name>User Porject Release</name>
        <url>http://nexus.tbb.com/repository/maven-releases/</url>
     </repository>
     <repository>
        <id>maven-snapshots</id>
        <name>User Porject Snapshot</name>
        <url>http://nexus.tbb.com/repository/maven-snapshots/</url>
     </repository>
</repositories>
           

修改項目POM.xml檔案,如下:

<distributionManagement>
    <snapshotRepository>
        <id>maven-snapshots</id>
        <name>User Porject Snapshot</name>
        <url>http://nexus.tbb.com/repository/maven-snapshots/</url>
        <uniqueVersion>true</uniqueVersion>
    </snapshotRepository>
    <repository>
        <id>maven-releases</id>
        <name>User Porject Release</name>
        <url>http://nexus.tbb.com/repository/maven-releases/</url>
    </repository>
</distributionManagement>
           

執行部署操作

  1. 方式一,直接使用mvn deploy指令
  2. 使用IDE中的maven快捷操作,以idea為例,如圖,輕按兩下deploy即可:
    Maven deploy部署jar包到遠端私倉
    Maven deploy部署jar包到遠端私倉
    Maven deploy部署jar包到遠端私倉

轉載于:https://www.cnblogs.com/lenovo_tiger_love/p/10309782.html