情况如下:
我使用maven和cargo plugin将web应用程序自动部署到不同的环境中,使用Hudson运行/调度作业来完成这项工作。我使用tomcat作为目标应用程序容器。
但是我想找到最好的方法来备份部署的Web应用程序到某个网络/FTP位置,在maven/货物部署最新版本之前。我一直在寻找一些有助于做类似事情的maven插件,但似乎像这样的任务超出了maven的范围。此外,我正在寻找一些可能有助于完成这项工作的Hudson插件,但没有成功。
我还看了(Tomcat)Backup WAR on Deploy中的讨论,但我想避免的是有人从tomcat中获取war文件并将其放置到外部位置,我想自动执行此任务。
提前谢谢
考虑在准备包阶段或包阶段定义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中调用。