发布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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值