2014-10-17 90 views
2

在持续部署环境中,回滚是一个棘手的话题。使用Hudson和Maven进行连续部署回滚

我需要回滚到我的最新版本。

我用哈德森Maven的,我要部署到如JBoss Java EE应用服务器。

例如,

<build> 
    [...] 
    <plugins> 
     <plugin> 
      <groupId>org.jboss.as.plugins</groupId> 
      <artifactId>jboss-as-maven-plugin</artifactId> 
      <version>7.6.Final</version> 
     </plugin> 
    </plugins> 
</build> 

任何想法?

+0

回滚可能很难,对。有一个想法,甚至比你使用的工具和一个插件部分更了解你的环境更加困难。 – 2014-10-17 23:28:20

回答

4

它取决于技术和使用的CD工具。

例如,Weblogic可以选择将替换的包标记为“retitred”并重新激活它。

mvn com.oracle.weblogic:weblogic-maven-plugin:redeploy 
    -Dadminurl=t3://myhost:7001 -Duser=weblogic -Dpassword=mypassword 
    -Dtargets=AdminServer -Dname=sample.war 

但是版本(在清单中)必须不同。

一般而言,当您构建应用程序时,您将分配一个版本号,然后您可以恢复存储版本历史记录的最新版本。

你的情况(Hudson-CI与Maven)你可以使用DB(MySQL的MantisBG在我的情况下)来存储刚发布的包的版本,那么你就可以轻松地回滚。

可以在这里找到一点点解释Maven Build Cuistomization

有时,我们不以 “父母版” 仅部署一个应用程序,但几个包:

  • MyProject的版本1.0.1
    • MyApp.ear 1.3
    • MyBatch.jar 2.0

,那么你需要一个更复杂的CD系统;在我的情况下,我使用由我的Bug Tracker(MantisBT)提出的层次结构,但有很多工具更专业也见到Continuous Delivery Scenario - implementing Rollback

+0

有点难以查看未发布的书。 – 2014-10-27 19:06:34