【发布时间】:2011-07-08 19:34:58
【问题描述】:
我正在尝试设置一个完整的 CI 服务器,但我在某些方面遇到了困难。
目前,我的系统工作如下:
我在本地 GIT 存储库上提交本地更改,然后推送到 CI 服务器上的 GIT 存储库
然后我有一个由 SCM 更改触发的 jenkins 作业,它运行全新安装并通过这样做执行我的所有 Junit 和 Jstestdriver 测试(通过本地 jstd 服务器)。此作业将快照工件部署到我的 nexus 存储库上的存储库
-
我为 jenkins 安装了 M2-release-plugin,并使用 maven-release-plugin 相应地设置了我的 pom.xml。当我在 jenkins 作业页面中单击“执行 maven 发布”时,jenkins 运行 mvn release:prepare release:perform,从而在我的 git repo(比如 v000001)中创建一个标签,并在我的 nexus 存储库上部署一个版本化的工件。
我真的不知道这个过程是否很好,但我想是的......
我的问题是我想在我的生产 tomcat 中交付我的 nexus 存储库中的版本化工件(比如“artifact-v0000001.war”)。但我不知道该怎么做。
当我执行“mvn release:prepare release:perform tomcat:deploy”时,它会部署构建的新 SNAPSHOT 工件......我不想这样做,我想重用来自 nexus 存储库的工件。
有没有办法使用工具(maven/jenkins 插件或外部)来做到这一点?
基本上,我想获取存储库中的最后一个发布工件,并将其发送到 tomcat 管理器以重新部署 webapp。
我是否需要设置与发布作业分开的交付作业?
【问题讨论】:
-
想要自动部署每个成功的构建吗?或仅来自 repo 的最新版本(不是自动的,而是取决于您的决定)
-
我只想在发布时部署(提交到 SCM 并创建标签,然后将工件上传到我的 nexus 存储库)。
标签: maven deployment jenkins nexus