發佈Maven構件的幾種方式

發佈構件到Maven倉庫的幾種方案比較

1、Maven 原生髮布方式

  • mvn deploy : 直接通過pom.xml文件中定義的版本和服務器信息,將構件發佈到服務器
  • mvn deploy:deploy-file :指定某個文件作爲版本發佈,但是一次只能發佈一個jar文件,不適合多項目結構的maven工程。可以通過參數的方式覆蓋pom.xml文件的配置
    mvn deploy:deploy-file -Dfile=/opt/pr****n/*-ommon/*ommon-base/target/**-mon-base-2.0.0-SNAPSHOT.jar -DrepositoryId=nexus-snapshots -DgroupId=a -DartifactId=b -Dversion=1.0.0 -Durl=file:/opt/repository/aaa/
    
  • 參考文檔:
    https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
    https://maven.apache.org/plugins/maven-deploy-plugin/

2、Maven插件方式(maven-release-plugin)

  • pom.xml文件中安裝 maven-release-plugin 插件

  • 對插件內容進行配置

       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-release-plugin</artifactId>
           <version>2.5.3</version>
           <configuration>
               <!--git用戶名-->
               <!--suppress UnresolvedMavenProperty -->
               <username>${username}</username>
               <!--git密碼-->
               <!--suppress UnresolvedMavenProperty -->
               <password>${password}</password>
               <!--mvn目標指令-->
               <goals>-f pom.xml deploy</goals>
           </configuration>
       </plugin>
    
  • 同時需要在pom.xml中配置git 或 svn地址

        <scm>
            <!--release包需要放入的nexus或者其他maven release包的倉庫url地址-->
            <url>http://********/repository/maven-releases/</url>
            <!--connection, developerConnection: 都是連接字符串,其中後者是具有write權限的scm連接 -->
            <!--需要打包項目的git地址-->
            <developerConnection>scm:git:http://*********/****-common.git</developerConnection>
            <!--需要打包項目的git地址-->
            <connection>scm:git:http://*********/****-common.git</connection>
            <tag>HEAD</tag>
        </scm>
    
  • 執行命令進行發佈,也可回滾

     mvn release:prepare -Dusername=username -Dpassword=password
     mvn release:perform -Dusername=username -Dpassword=password
    
  • 此種方式的問題:

    • 有多步交互,會要求創建代碼倉庫的tag
    • 發佈過程要求輸入release版本
    • 要求指定新的snapshot版本
    • 會在服務器上創建snapshot 分支

3、通過gradle插件(Maven Publish Plugin)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章