使用release自动打包发布正式版详细教程

  昨天写了个release插件的版本管理,今天就在自动发布过程中遇到了许多坑,只能再写一篇自动发布详细教程,纪念我那昨日逝去的青春 (╥ _ ╥`)

  release正常打包发布流程按照如下几个阶段:

  • Check that there are no uncommitted changes in the sources
  • Check that there are no SNAPSHOT dependencies
  • Change the version in the POMs from x-SNAPSHOT to a new version (you will be prompted for the versions to use)
  • Transform the SCM information in the POM to include the final destination of the tag
  • Run the project tests against the modified POMs to confirm everything is in working order
  • Commit the modified POMs
  • Tag the code in the SCM with a version name (this will be prompted for)
  • Bump the version in the POMs to a new value y-SNAPSHOT (these values will also be prompted for)
  • Commit the modified POMs

1. 检出项目

由上述流程可知,release打包发布成功的前提条件是于svn库中代码完全一致(包括配置文件、target文件夹、.classpath文件等),所以不能直接在eclipse进行build。

因此我们需要新建一个文件夹,重新检出项目,专门进行打包发布。

2.  开始打包

在platform中打开控制台输入命令:

  测试命令(以文字型输出,并未真正发布):

    mvn -DdryRun=true release:prepare-with-pom

正式命令:

mvn release:prepare-with-pom

正常应出现:

如果要用默认值,就直接回车。

“你想将1.1.7-SNAPSHOT发布为什么版本?默认1.1.7。”    我要1.1.7,直接回车。

“发布的tag标签名称是什么?默认为v1.1.7。”    我还是要默认值,直接回车。

“主干上新的版本是什么?默认为1.1.8-SNAPSHOT。”   哈,release插件会自动帮我更新版本到1.1-SNAPSHOT,很好,直接回车。

  然后屏幕刷阿刷,maven在build我们的项目,并进行了一些svn操作,你可以仔细查看下日志。

然而事情有时并不是和你想象的那样顺利!   (╯>?<)╯ ? ┸┸)`ν?)

你可能会遇到这种情况:

解决方案:

    这是platform的子模块存在快照版本的依赖,应改为正式版。(即没有-SNAPSHOT的jar版本)

或者这种情况:

  运行发布命令直接失败,显示release无依赖!!!

解决方案:

    检查配置是否齐全。

  platform父级模块的配置:

<!-- scm配置,具体路径为待打包代码分支的根路径(trunk、branckes/v1.1.x、/tags/v1.1.5等) -->
    <scm>
          <developerConnection>scm:svn:svn://SVN主路径地址/trunk/</developerConnection>
     </scm>
   <!-- maven-release-plugin插件配置 -->
    <build>
          <plugins>
              <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-release-plugin</artifactId>
                   <version>2.5.3</version>
                   <configuration>
                     <autoVersionSubmodules>true</autoVersionSubmodules>
                     <tagNameFormat>[email protected]{project.version}</tagNameFormat>
                     <generateReleasePoms>false</generateReleasePoms>
                     <arguments>-DskipTests</arguments>
                </configuration>
              </plugin>
          </plugins>
     </build>

  console、service等子模块的配置

<!-- maven-release-plugin插件配置 -->
    <build>
          <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.3</version>
            </plugin>
          </plugins>
     </build>

又或者这种情况:

运行发布命令直接失败,显示有与SVN库代码不一致。

解决方案:

更新platform打包发布文件夹。

还不是?那么你凉了,赶紧删库跑路吧!   ?*??(^?^*)??*?

给你个传送门,快往这里跑!    内有恶犬

3.  清除release configuration信息

在发布或测试发布之后,会产生发布配置信息,如果下次再发布就需要将其删除,保持和SVN库代码一致。

    所用命令:

mvn release:clean

4.  清除target文件夹

同上,必须和SVN库代码保持一致。

所用命令:

mvn clean

原文地址:https://www.cnblogs.com/huxiuqian/p/10288354.html

时间: 2024-08-01 05:47:34

使用release自动打包发布正式版详细教程的相关文章

cordova 打包发布正式版 apk

cordova build android —release 笔者观察了一下新版Cordova,用的是gradle来build项目,所以网上的那些设置ant.properties的解决方法都排除掉,不能用,为了看看到底咱需要什么才能让cordova知道哪里找keystore,笔者打开了 “项目路径\platforms\android”下面的build.gradle文件,里面赫然写着: if (ext.cdvDebugSigningPropertiesFile == null && file

server-U_汉化版详细教程

启动Serv-U adminisrator之后,出现如图界面,先看看"本地服务器"这个项目,如图,有个选项是"自动开始(系统服务)",选中后,Serv-U就把自己注册成系统服务,开机自动运行,而且在用户没有登录的情况下就开始运行了. 这里说说Serv-U的运行方式,看看安装后的根目录,有几个文件:ServUAdmin.exe是配置管理工具,ServUTray.exe是驻留系统托盘的工具,ServUDaemon.exe是Serv-U后台运行的守护程序.只要ServUD

Windows Server 2016 正式版安装教程

微软今天正式发布了Windows Server 2016,它可以理解为服务器版的Windows 10,宣告整个核心架构定型稳定.实际上,上月末,微软就已经面向大客户OEM伙伴分发了Windows Server 2016正式版ISO镜像,现在则是全面开放下载使用. Windows Server 2016似乎是对这个平台之前版本的一次体面的升级,围绕着软件定义存储.网络和虚拟化引入了新的功能,帮助企业打造更强大.更灵活的IT基础架构.Windows Server 2016带来了大量新功能,包括引入新

基于Travis CI搭建Android自动打包发布工作流(支持Github Release及fir.im)

最近付费购买了Travis CI,Travis CI的收费模式很有意思,不是按项目或者用户,而是按工作进程收费,比如初级版本是$129/月,总共提供2个工作进程.在项目不多的情况下,除了用于跑单元测试外,不免想利用的更充分一些,因此抽空搭建了一套基于Travis CI的Android自动发布工作流. 未自动化前安卓开发总是避免不了这样的工作流程: 开发一些新功能,提交代码 完成一部分功能后,打包一个测试版APK 将测试版APK上传到QQ群 / 网盘 / Fir.im / 蒲公英等 在QQ群或发布

微软发布正式版SQL Server 2016

微软于今天在SQL 官方博客上宣布 SQL Server 数据库软件的正式发布版本(GA),历时一年多,微软为该软件发布了多个公共预览版和候选版本,而今天最终版本终于上线了.在博客中,微软数据集团的企业副总裁 Joseph Sirosh 表示:“在已经简化的企业数据管理基础上 SQL Server 2016 再次简化了数据库分析方式,强化分析来深入接触那些需要管理的数据.”在保持售价不变的情况下,Sirosh 表示将会增加性能和功能扩展. SQL Server 2016 数据库系统对于云数据管理

自动打包发布到服务器的持续集成工具:Jenkins+钉钉

钉钉,智能移动办公平台工具. Jenkins,是一个开源的持续集成的服务器,开源帮助我们自动构建各类项目. 持续集成,检测代码逻辑,高效率自动化发布工程项目. 安装Jenkins在服务器:Jenkins具体安装与构建部署使用教程 发布后台API配置:图片太大 发布前端Vue项目:图片太大 原文地址:https://www.cnblogs.com/yancongyang/p/10832561.html

#ArcGIS 10.5# 正式版安装教程

2017年新年来临之际,ArcGIS 10.5正式发布. ?2017年新年来临之际,ArcGIS 10.5正式发布.历经几个版本,ArcGIS 10.5已经革新为一个智能的以Web为中心的地理平台,推出更精细的分级授权.全新的i3S三维标准.大数据分析处理产品.多Portal间协作共享等诸多新特性及增强,更进一步促进用户间的沟通协作,分析大数据背后的价值,使用户更智能.更高效.更敏捷的进行决策及响应. l   ArcGIS 10.5 includes the latest release of

Java项目打包成exe的详细教程

把Java项目打包成exe共分为以下两步: 1. 利用Eclipse先把Java项目先打成jar包 2. 利用exe4j工具把jar包转成exe 这里以Java项目(ExeDemo)为例进行讲解 随便在一个位置新建一个文件夹,文件夹的名称也可以随便起,这里我们在桌面上新建一个文件ExeDemo 1.利用Eclipse先把Java项目先打成jar包 (1)找到要转成exe的Java项目 (2)Export相应的Java项目 (3)选择Java->JAR file (4)按照如下设置,然后点击Fin

Angular2正式版发布,Wijmo抢先支持

Angular2正式版发布 9月15日,Angular 2 的最终版正式发布了.作为 Angular 1 的全平台继任者 -- Angular 2 的最终版,意味着什么? 意味着稳定性已经得到了大范围用例的验证: 意味着已经针对产品化.文件尺寸和性能,进行了优化: 意味着已经可以借助预编译技术和内置的延迟加载机制了,这些可以确保能发布出最快.最小的应用,并且横跨浏览器.桌面和移动平台: 意味着为开发人员准备的 Angular CLI 和风格指南得到了大幅增强. Angular 1 的发布为新兴的