提问者:小点点

在部署新版本之前备份已部署的web应用程序(自动)


情况如下:

我使用maven和cargo plugin将web应用程序自动部署到不同的环境中,使用Hudson运行/调度作业来完成这项工作。我使用tomcat作为目标应用程序容器。

但是我想找到最好的方法来备份部署的Web应用程序到某个网络/FTP位置,在maven/货物部署最新版本之前。我一直在寻找一些有助于做类似事情的maven插件,但似乎像这样的任务超出了maven的范围。此外,我正在寻找一些可能有助于完成这项工作的Hudson插件,但没有成功。

我还看了(Tomcat)Backup WAR on Deploy中的讨论,但我想避免的是有人从tomcat中获取war文件并将其放置到外部位置,我想自动执行此任务。

提前谢谢


共1个答案

匿名用户

考虑在准备包阶段或包阶段定义maven-antrun-plugin。请参阅阶段列表:http://www.sonatype.com/books/mvnref-book/reference/lifecycle-sect-structure.html#lifecycle-sect-default然后,创建将您的战争复制到任何地方的蚂蚁目标。

这里是maven-antrun-plugin在阶段安装的示例:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <id>file-exists</id>
                        <phase>install</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <exec executable="cmd">
                                    <arg value="/c"/>
                                    <arg value="copy your file"/>
                                </exec>
                            </target>
                        </configuration>
                    </execution>

                </executions>
            </plugin>
        </plugins>
    </build>

然后,创建将您的战争复制到任何地方的蚂蚁目标。您可以使用其他任务而不是exec任务,例如SCP任务:https://ant.apache.org/manual/Tasks/scp.html此外,您可以定义自己的maven配置文件,该配置文件将仅在Hudson中调用。