发布Maven,SVN和Hudson(詹金斯)

时间:2011-10-22 22:41:48

标签: svn maven hudson release jenkins

我想做一个“发布”,其含义与Maven发布插件假设的含义略有不同。

我有一个web项目(我想“发布”),它依赖于同样由同一个hudson构建的各种其他项目(尽管不是模块)。

“发布”应执行以下操作:

  • 通过hudson构建所有dependend ^ dependend项目
  • 构建web项目(向MANIFEST添加递增版本号)
  • 将web-project部署到tomcat(这已经在常规版本中)
  • 创建一个新标记,其中包含svn location x
  • 的版本号
  • 将以前构建的项目的所有当前svn / head源复制到新标记
  • 将所有相关项目的所有pom版本更改为$ {versionNumber}。在SVN / head上的.0.1-SNAPSHOT

我认为这是每个人都必须做的事情,通过谷歌找到实际的解决方案非常困难。

2 个答案:

答案 0 :(得分:0)

如果您有特定需求,那么我认为实现它们的最简单方法是使用脚本。 几种脚本语言可以用作Hudson中的构建步骤。

答案 1 :(得分:0)

听起来非常像我们的要求。我们尚未在Jenkins中完全构建它。

所以我们有以下程序:

  1. 宣布代码冻结,使所有团队都能在主干中拥有“正确”的代码,并让代码互相“同步”。

  2. 我们运行一个(自行开发的)java工具,检查代码创建发布和发布标记的分支。从下一次迭代开始,它还将使用新的快照版本更新trunk。该工具拥有自己的配置文件,因此它知道版本号将是/将是什么以及需要更新哪些项目(以及它们所在的位置)。

  3. 我们运行“构建发布”工作,这与我们所有的内部企业回购(它只知道第三方和外部回购)完全脱节。这份工作清理了当地的maven仓库(它有自己的仓库,没有其他工作用)。我下载了我们所有项目特定的子文件夹(我们需要在作业中配置),使用每个和另一个Mega项目pom的subversion-tag-parameter,它将所有下载的项目声明为模块(需要转到根文件夹) 。这项工作还可以完成所需的所有打包(压缩静态内容,将来自不同项目的静态文件合并到一个archieve中,......)。

  4. 部署

  5. 功能测试

  6. 到目前为止,2有自己的工作,3完全自动化,我们只需要手动启动它。第4步正在为CI工作,第5步计划用于CI。第4步是发布过程的自动化(即使只是部分)。

    我希望这会有所帮助并给你一些想法。